CS기초/알고리즘 2

이진탐색 알고리즘

출처: 이것이 코딩 테스트다 with Python 26강 이진 탐색 개요 https://www.youtube.com/watch?v=-Gx0T92-7h8&list=PLVsNizTWUw7H9\_of5YCB0FmsSc-K44y81&index=27 이진탐색이란? 정렬되어 있는 리스트에서 탐색범위를 절반씩 좁혀가며 데이터를 탐색하는 방법 시간복잡도: log2(n) 이진탐색 수도코드 이진탐색 예 - 원하는 값이 없는 경우 시작점 = 0 끝점 = list.length - 1 while(끝점 찾는값) { 끝점 = 중간점 - 1 } else { 시작점 = 중간점 ..

그리디 알고리즘

출처: - 이것이 취업을 위한 코딩테스트다 with Python - https://youtu.be/5OYlS2QQMPA 그리디 알고리즘 현재 상황에서 지금 당장 좋은 것만 고르는 방식 지금 당장 좋은 것만 골라도 최적해가 나올 수 있는 문제를 풀 때 적합 전체 경우의 수를 고려해서 최적해를 구해야하는 문제를 풀 때는 부적합 그리디 알고리즘이 부적합 문제 문제: 루트 노드부터 시작하여 거쳐가는 노드의 합을 최대로 만들고자 할 때, 최대의 값은 무엇인가? 최적해는 21 (5 -> 7 -> 9) 인 데, 그리디 알고리즘을 적용하면 19 (5 -> 10 -> 4)가 나와 최적해를 구할 수 없음 지금 당장 좋은 것을 골라도, 다음 단계에서 역전 가능성이 있으므로 그리디 알고리즘에는 부적합 최적해: 21 (5 ->..