분류 전체보기
알고리즘이란?
알고리즘이란?
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번째 피보나치 수를 구하는 문제가 되고 다른 수를 구할 때 같은 문제가 겹치는 ..