목록분류 전체보기 (341)

수학과의 좌충우돌 프로그래밍

Scoping , LEGB 룰

안녕하세요 강민성입니다. 오늘은 파이썬 변수의 유효 범위에 대해서 알아보도록 하겠습니다. 먼저 scoping rule 이란 변수의 접근이 가능한 범위를 뜻합니다. 이 scope를 결정하는 방식에는 크게 두 가지로 나눌 수 있는데 static scoping 과 dynamic scoping 입니다. 그 중에서 dynamic scoping 에 대해서 알아보도록 하겠습니다. dynamiic scoping를 사용하는 대표적인 예가 바로 python 이죠. 그래서 python 언어를 통해 알아보겠습니다. 파이썬에서 변수는 4가지 경우가 존재합니다. LEGB 가 각각에 해당되는데 이에 대해서 먼저 알아보도록 하겠습니다. Local : 함수 내부의 공간 Enclosing Function Local : 함수를 내포하는 ..

프로그래밍 언어/Python 2018. 12. 1. 16:27
클래스와 인스턴스란? (3) 메소드

안녕하세요 강민성입니다. 저번 시간에 이어서 클래스와 인스턴스에 대해서 더 알아보도록 하겠습니다. 오늘 알아볼 개념은 바로 메소드라는 개념입니다. 메소드란? 메소드는 그 전까지 들어본 적이 없지만 우리가 흔히 사용하는 함수라고 생각하면 됩니다. 함수는 함수지만 클래스 안에서 정의되어 클래스의 인스턴스에만 적용될 수 있는 함수를 메소드라고 부릅니다. 우선 저번 시간에 배웠던 내용을 다시 살펴보도록 하겠습니다. 12345678910111213141516171819class Human(): pass def define_Human(job,age): person = Human() person.job = job person.age = age return person Human.define = define_Human..

프로그래밍 언어/Python 2018. 12. 1. 13:47
클래스와 인스턴스란? (2) 모델링

안녕하세요 강민성입니다. 저번 시간에 이어서 클래스와 인스턴스에 대해서 알아보도록 하겠습니다. 모델링이란? 클래스를 사용하는 이유는 현실의 개념을 더 쉽게 코드로 표현하기 위해서 입니다. 저번 시간에 이어서 Human 클래스를 선언하고 이에 현실에 개념을 적용시켜서 추가해보도록 하겠습니다. 1234567class Human(): pass person = Human()person.job = 'student'person.age = 23cs Human 클래스에 대한 person 객체를 만들어주고 직업, 나이를 지정해주었습니다. pass는 신경 안쓰셔도 상관없습니다. 그런데 사람이 여러 명일 경우에 모두 직업, 나이가 있을 텐데 다음과 같은 방식으로 선언을 하면 번거로울 겁니다. 그래서 사람을 정의해주는 함수를..

프로그래밍 언어/Python 2018. 11. 30. 21:57
클래스와 인스턴스란? (1)

안녕하세요 강민성입니다. 오늘은 파이썬의 클래스와 인스턴스에 대해서 알아보도록 하겠습니다. 객체지향언어에서는 빼놓을 수 없는 개념이죠. 파이썬 언어로 들어가기 전에 현실세계에서 무슨 개념과 유사한지 부터 알아보도록 하겠습니다. 클래스와 인스턴스란? 다음과 같이 두 명의 인간이 있습니다. 한 명은 강사, 한 명은 학생이죠. 그러면 둘은 같다고 할 수 있을까요? 당연히 상황에 따라서 달라질 겁니다. 둘은 강사와 학생이라는 입장에서는 엄연히 다릅니다. 부가 설명을 할 것도 없이 강사와 학생은 이름도, 나이도, 성별도 많은 것이 다를 겁니다. 하지만 둘은 인간이라는 관점에서 같은 인간의 범주로 묶을 수 있습니다. 지금까지의 예시에서 인간이 바로 클래스, 강사와 학생은 인간이라는 클래스의 인스턴스가 됩니다. 그러..

프로그래밍 언어/Python 2018. 11. 30. 21:23
markdown 에 대해서 알아보자!

안녕하세요 강민성입니다. 오늘은 마크다운! 에 대한 주제로 돌아왔습니다. django 로 프로젝트를 진행하면서 봤었던 readme.md 파일이 바로 마크다운으로 만들어진 문서였었습니다. md 라는 처음 보는 확장자명을 보면서도 아무렇지도 않게 지나쳤던 제 자신을 반성하며 마크다운에 대해서 알아보았습니다. 함께 알아보러 가실까요? Markdown 이란? Markdown 은 2004년 존 그루버가 에런 스워츠와의 협업을 통해 만들었습니다. 일반 텍스트 문서의 양식을 편집하는 문법이며, 위에서 말했던 readme 파일이나 온라인 문서 등에 사용이 됩니다. 사람들이 읽고 쓰기 쉽도록 굉장히 쉬운 문법 구조인 덕분에 글을 써내려가면서 흐름에 끊김 없이 각 글자에 원하는 서식을 지정해줄 수 있죠. 굵기, 기울기, ..

프로그래밍 언어/markdown 2018. 9. 25. 17:35
Java 개발순서 및 Hello World! 출력하기

안녕하세요 강민성입니다. 이번에는 Java의 개발순서를 알아보고 Hello World! 를 출력해보도록 하겠습니다. Java 의 개발순서 자바의 개발 순서는 다음과 같이 3가지 과정을 거칩니다. 코드작성, 코드 컴파일,JVM 으로 실행 순서로 말이죠. 이렇게 보면 각각이 어느 과정인지 이해하기 어려우니 Hello World! 를 출력하는 과정을 보며 이해해보도록 하겠습니다. 코드작성 먼저 메모장 혹은 본인이 사용하는 에디터에 아래의 코드를 작성해줍니다. 123456789public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } }Colored by Color Scriptercs 각..

프로그래밍 언어/Java 2018. 9. 16. 22:59
Java를 시작해보자(Java의 특징 및 개발환경 구축)

안녕하세요 강민성입니다. C언어와 파이썬에 이어 3번째 언어로 자바를 공부하게 되었습니다. 사실 C 도 그렇고 파이썬도 그렇고 어중간하게 한 느낌이 없지않아 있어서 갈 길이 멀지만 최근에 안드로이드 스튜디오로 어플리케이션 개발을 계획 중이라 자바를 공부할 필요가 생겼습니다. 그러면 자바라는 언어에 대해서 먼저 알아보도록 하겠습니다 :) Java 란 자바는 1995년 썬 마이크로시스템즈에서 발표한 객체지향 언어입니다. 현재 썬 마이크로시스템즈는 오라클에 인수가 된 상태이고요. 객체지향 언어는 따로 정리를 해두었으니 아래 링크를 참고하시면 좋을 듯 합니다. http://ssungkang.tistory.com/entry/%EA%B0%9D%EC%B2%B4-%EC%A7%80%ED%96%A5-%ED%94%84%EB..

프로그래밍 언어/Java 2018. 9. 16. 17:49
숫자게임(프로그래머스-level3)

안녕하세요 강민성입니다. 이번에 풀 문제는 2018서머코딩 알고리즘 문제 중 하나 입니다. 대회에서 나오는 문제들을 보면 매번 저런 문제를 어떻게 만들어내는지 그저 신기할 따름입니다. 문제를 이해하고 코드를 짜는 것도 적지 않은 시간이 걸리곤 하는데... 요즘 주변에 취업원서 넣고 코딩테스트 보러 가는 사람들이 많아서 그런지 알고리즘의 중요성을 새삼 다시 깨닫습니다. 1차에서 떨어지는 경우도 비일비재 하더라고요. 그러면 문제 보도록 하겠습니다. [ 문제 ] xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로 자연수를 하나씩 부여받습니다. 각 사원은 딱 한 번씩..

알고리즘/파이썬 2018. 9. 16. 01:02