분류 전체보기
Python03 :: Class
Python03 :: Class
2018.12.30python으로 class를 구서하는 방법에 대해 알아보겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class Calculator: def __init__(self): self.result = 0 def adder(self, num): self.result += num return self.result cal1 = Calculator() cal2 = Calculator() print(cal1.adder(3)) print(cal1.adder(4)) print(cal2.adder(3)) print(cal2.adder(7)) #인스턴스는 클래스에 의해서 만들어진 객체, 1개의 클래스는 무수히 많은 인스턴스를 만들어 낼 수 있다. cs 1 2 3 4 5 6 7 8 9 10 1..
Python02 :: sort
Python02 :: sort
2018.12.29정렬(sort) 오름차순, 내림차순 으로 정렬한것. 키란 자료를 정렬하는 기준이 되는 특정 값. ex) 서류를 번호대로 정렬하기 - 키 : 서류번호 대표적인 정렬 방식의 종류 버블 정렬, 카운팅 정렬, 선택 정렬, 퀵정렬, 삽입 정렬, 병합 정렬 이 있다. 버블 정렬과 카운팅 정렬 에 대해서 본다. 버블 정렬 : 인접한 두 개의 원소를 비교하며 자리를 계속 교환하는 방식 - 첫번쨰 원소부터 인접한 원소끼리 계속 자리를 교환하면서 맨 마지막 자리까지 이동 - 한 단계가 끝나면 가장 큰 원소 또는 가장 작은 원소가 마지막 자리로 정렬됨 - 교환하며 자리를 이동하는 모습이 거품 모양과 같다고 해서 붙여짐 시간 복잡도 = O(n^2) ex) 55, 7, 78, 12, 42를 버블 정렬하는 과정 맨앞에 두 숫자 ..
웹의 동작(HTTP 프로토콜 이해)
웹의 동작(HTTP 프로토콜 이해)
2018.12.29HTTP 의 이해 인터넷? 네트워크들의 네트워크 (TCP/IP 약속으로 연결) 컴퓨터에 여러개의 서버가 연결될 수 있으며 각각의 서버들은 포트라는 값으로 구분되어 동작한다. 웹은 80번 포트 이용, EMAIL 25, FTP 21번 HTTP : 서로 통신하기 위해서, 서버와 클라이언트가 인터넷상에서 데이터를 주고 받기 위한 프로토콜을 말한다. 어떤 데이터도 서로 주고 받을 수 있다. 네트워크 통신방법 유상태, 무상태 방법이 있다. 유상태 - 클라이언트와 서버간 지속적인 데이터를 주고받을 수 있다. EX) 채팅, 온라인 게임 HTTP 프로토콜은 Stateless 방식으로 계속 연결을 맺는것이 아니라, 필요한 경우에만 연결을 맺고 보통 빠르게 요청 보내고 응답을 받은 후에 연결을 끊게 된다. = 계속 연결을 ..
알고리즘이란?
알고리즘이란?
2018.12.26알고리즘이란? 문제를 해결하기 위한 여러 동작들의 모임입니다. 이를 해결하기 위해 수학적이고 논리적으로 정의된 계산 단계에 따라 원하는 출력을 하는 절차를 거칩니다. 통상적으로 알고리즘은 입력과 출력을 갖고 있습니다. 오류가 존재하면 안되는 점(명확성) 그리고 메모리의 가용영역을 고려하여 효율적인 알고리즘을 작서앻야 합니다. 하나의 알고리즘을 예로 들어보겠습니다. 하기 알고리즘은 최대 공약수를 구하는 알고리즘입니다. 최대 공약수라 함은 손으로 쉽게 구할 수 있지만 코드화 하여 알고리즘을 통해 구할 수 있는 부분도 있습니다. 본 알고리즘 로직은 큰 수에서 작은 수를 빼는 가정을 두 수 중 하나가 0이 될 때까지 반복하면, 0이 아닌 수가 최대공약수입니다. 1 2 3 4 5 6 7 algorithm gcd(..
정렬 알고리즘
정렬 알고리즘
2018.12.25정렬 알고리즘 하기 알고리즘은 각 정렬 알고리즘 종류에 따라 코드로 구현한것이니 참고 부탁드립니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 11..
Dynamic Programming
Dynamic Programming
2018.12.24Dynamic Programming : 작은 문제의 답을 조합해서 큰 문제의 답을 푸는 과정이다. DaC(Divide and Conquer) 과 DP(Dynamic Programming)은 비슷하지만 다음의 차이점이 존재한다. DaC 1. 문제가 절반으로 줄어든다. 2. Function Problem 3. 결과가 한번 사용된다. 4. 분할이 성능을 향상 시킨다. DP 1. 문제가 -1로 줄어든다. 2. 최적화 문제 3. 결과가 여러번 사용된다. 4. 결과 재사용이 성능을 향상시킨다. Overlapping Subproblem 은 중복되는 부분 문제이다. 예를 들면 N번째 피보나치수를 구하는 문제를 구하는 문제는 N-1번째 N-2번째 피보나치 수를 구하는 문제가 되고 다른 수를 구할 때 같은 문제가 겹치는 ..