코드잇_codeit
-
Python: 객체 지향 프로그래밍을 위한 4가지 기본개념 (상속, 추상화, 캡슐화, 다형성)1Python 2020. 8. 16. 13:34
객체 지향 프로그램을 다루기 위해서는 알아야 할 4가지 기본개념에 대해 알아봅시다. 크게 4가지로 나뉩니다. 상속 추상화 캡슐화 다형성 하나씩 차례로 알아봅시다. 재산상속할때 그 상속입니다. 사전적 의미를 살펴보면 상속은 일정한 친족 관계가 있는 사람사이에서 한 사람이 다른 사람에게 재산에 관한 권리와 의무의 일체를 이어 받는 일이라고 합니다. 상속이라는 의미 그대로 상속을 해주는 클래스를 부모 클래스, 상속을 받는 클래스를 자식클래스로 정합니다. 그리고 자식클래스는 부모클래스의 모든것을 물려받습니다. 자식 클래스는 부모 클래스의 함수와 변수를 물려받아 사용하고 필요할때는 부모 클래스의 함수와 변수를 바꾸어 사용하기도 합니다. 함수를 바꾸어 사용하는 것을 오버라이딩(overriding)이라고..
-
Python: 파이썬 데코레이터(Decorator) 공부하기!Python 2020. 8. 15. 20:35
파이썬의 데코레이터 기능에 대해 알아봅시다. Decorate의 사전적 의미는 장식하다, 꾸미다 이러한 의미인데요 그렇다면 파이썬에서 데코레이터(decorator)는 어떠한 역할을 할까요? 데코레이터는 메소드를 꾸밉니다. 좀 더 정확하게 말하면 메소드를 매개변수로 받아서 기존함수에 부가적인 기능을 추가하여 사용할 수 있도록 합니다. 예제를 확인해봅시다. def add_print_to(inner): def outer(): print("함수 시작") inner() print("함수 끝") return outer add_print_to 함수는 inner라는 메소드를 매개변수로 받습니다. inner는 outer()라는 외부 함수로 둘러 쌓이고 "함수 시작" 과 "함수 끝"이라는 출력문으로 꾸며집니다. add_pr..
-
Python: 객체지향언어? 클래스(class)? 기초 공부하기!Python 2020. 8. 15. 17:31
클래스(class)를 공부하기 위해서는 먼저 객체지향언어에 대해서 알아야 합니다. 왜냐하면 파이썬은 순수 객체지향언어이기 때문이죠 우선 객체란 무엇일까요? 객체는 '속성과 동작'을 가진 어떤 것을 의미합니다. 사실상 세상의 모든 것입니다. 길바닥에 굴러다니는 돌도 객체라고 할 수 있고, 이 블로그도 하나의 객체라고 할 수 있습니다. 객체는 각각 속성과 동작을 지니는데 이러한 객체들간의 소통을 담은 언어가 객체지향언어입니다. 예를 들어 기차역에서 승차권을 발매하는 경우, '객체'인 손님과 '객체'인 역무원은 소통을 함으로써 '객체'인 승차권을 얻습니다. 손님은 승차권을 이용해서 '객체'인 기차를 이용합니다. 이렇게 객체들은 소통합니다. 그리고 이러한 소통을 담은 언어가 객체지향언어입니다. 참고로 객체지향 ..
-
알고리즘: 백준 10610번 30 (feat. Python)알고리즘/백준(BaekJoon) 2020. 8. 8. 17:55
백준 10610번 링크입니다. https://www.acmicpc.net/problem/10610 10610번: 30 문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶� www.acmicpc.net 30의 배수가 되기 위한 조건은 어떤수 N이 10의 배수이고 3의 배수인 경우이다. N이 10의 배수가 되기 위한 조건 = N안에 0이 포함되어 있으면 성립 N이 3의 배수가 되기 위한 조건 = N의 모든 자리수를 더했을 때 3의 배수이면 성립 이 두 조건만 성립하면 최대값은 N을 그냥 그대로 내림차순 정렬한 값이다. import sys input = sys.std..
-
알고리즘: 백준 11047번 동전0 (feat.Python)알고리즘/백준(BaekJoon) 2020. 8. 8. 15:27
4200원을 만드는데 필요한 동전의 갯수가 최소가 되게하기 위해선 가장 큰 동전으로 나누어 나가면 된다. 4200원 다음으로 가장 동전은 1000원이므로 4200 // 1000 = 4 ... 200 200 //100 = 2 ... 0 이므로 4 + 2 = 6이다. import sys input = sys.stdin.readline n, k = map(int, input().split()) money_list = [] for i in range(n): money_list.append(int(input())) change_count = 0 for i in range(n - 1, - 1, -1): if k == 0: break tmp = (k // money_list[i]) change_count += tmp..
-
Git: 자주 사용하는 Git 명령어 요약정리하기메모 및 기타 2020. 8. 7. 01:09
깃(Git) 명령어에 대해서 알아봅시다! 1. git init 가장 처음에 해주어야 하는 과정입니다. 프로젝트 디렉토리(working directory)를 만들고 그 안에 레포지토리(repositorty)를 생성합니다. 레포지토리는 .git 라는 디렉토리로 생성됩니다.(숨김으로 표시되어서 보이지 않습니다) 2. git config user.name "panda" 사용자의 이름을 정하는 명령어입니다. 저는 "panda"를 사용자 이름으로 설정하겠습니다. 3. git config user.email "abcd1234@daum.net" 사용자 이메일 주소를 설정합니다. 여기까지는 깃을 사용하기 위해 필수적으로 입력해야하는 명령어입니다. 4. git add [파일 이름] git add [디렉토리명] 수정한 파일..
-
데이터 사이언스: 파이썬 Beautiful Soup 모듈 이용해서 파싱(Parsing)하기!데이터 사이언스 2020. 8. 4. 03:54
파싱(Parsing)이란? 파싱은 문자의 구조를 분석해서 원하는 정보를 얻어내는 것입니다. 쉽게 말해서 웹 파싱이라하면 웹에서 필요한 정보를 찾아 가져오는 것을 의미하죠. 예를 들어, 네이버의 실시간 검색어에 대한 정보가 필요하다면 이를 파싱해서 가져올 수도 있습니다. 스크래핑과 크롤링 같은것? 같습니다. 정확하게는 잘모르겠네요ㅋㅋㅋ 파이썬에서 파싱을 하기 위한 대략적인 절차는 다음과 같습니다. 먼저 내가 파싱하고자 하는 웹사이트의 주소에 요청(request)을 보냅니다. 응답이 내가 정해놓은 변수에 저장되었다면 html 코드를 Beautiful soup타입을 바꾸어 준 후, select() 메소드를 이용해서 원하는 태그를 가져옵니다. (웹사이트 아무곳에서 마우스 우측 버튼을 누르신 후 검사(N)를 누르..
-
데이터 사이언스: 좋은 데이터란? 데이터 클리닝(Data clearing)공부하기!데이터 사이언스 2020. 8. 2. 01:31
데이터를 올바르고 효율적으로 사용하기 위해서는 좋은 데이터, 즉 퀄리티가 높은 데이터를 사용해야합니다. 그런데 좋은 데이터란 무엇일까요? 다음과 같은 조건을 만족한다면 좋은 데이터라고 할 수 있습니다. → 완결성 필수적으로 기입되어야 하는 데이터는 모두 입력되어야 합니다. 결측값이 있으면 안됩니다. → 유일성 동일한 데이터가 불필요하게 중복되어 있으면 안됩니다. 예를 들어, 우리가 어떤 사이트에 가입할때 이메일인증을 하죠? 만약 가입한 사이트라면 이미 등록되어 있는 이메일이라는 메시지가 나올겁니다. 그렇지 않다면 문제가 생길겁니다. → 통일성 모두 동일한 형식으로 저장되어 있어야 합니다. 만약 사람들의 키 데이터가 있을 때 어떤 사람은 m으로, 어떤 사람은 cm로 저장되어 있으면 나중에 문제가 발생하겠죠..