TIL 👩🏻‍💻

TIL : Algorithm (1)

heesue 2021. 4. 19. 20:26

1. 알고리즘

어떤 문제를 해결할 때의 논리적인 절차과정 ( = 문제를 어떻게 푸는 것이 최선인가?!)

ex) 자판기 : 화폐 투입 -> 음료수 선택 -> 음료수 받기


2. 시간 복잡도 (Time Complexity)

: 실행시간이라는 관점에서 알고리즘의 효율을 측정하는 표기법

· 최선 : Big-Ω 표기법

· 평균 : Big-θ 표기법

· 최악 : Big-O 표기법

=> 최선의 상황이나 평균적인 상황만 고려하다가 최악의 상황이 벌어지는 것보다 처음부터 최악의 상황까지 고려하여 대비하는 것이 바람직하다. 따라서 보통 Big-O 표기법을 사용한다!!

 


3. Big-O 표기법

1. O(1) : 입력에 관계없이 시간 동일 (상수)

2. O(n) : 입력이 증가하면 시간dl 같은 비율로  증가 (선형) - 반복문 1번 있는 경우!

3. O(logn) : 입력이 증가해도 시간 증가 비율이 작다. - 이진 탐색

4. O(n^2) : 입력값이 증가함에 따라 시간이 제곱수의 비율로 증가 - 반복문 2번 있는 경우!

5. O(2^n) : 입력값이 증가할 때 시간 증가 비율이 크다. - ex) 피보나치

 


4. 탐욕 알고리즘 (Greedy Algorithm )

1. 선택 절차(Selection Procedure) : 현재 상태에서의 최적의 해답 선택

2. 적절성 검사(Feasibility Check) : 선택된 해가 문제의 조건을 만족하는지 검사

3. 해답 검사(Solution Check) : 원래의 문제가 해결되었는지 검사한 후, 해결되지 않았다면 1번으로 돌아가 위의 과정을 반복


5. 동적 계획법 (Dynamic Programming)

: 주어진 문제를 여러 개의 하위 문제로 나누어 풀고, 하위 문제들의 해결 방법을 결합하여 최종 문제를 해결

· 가정 1 : 큰 문제를 작은 문제로 나눌 수 있고, 이 작은 문제들은 중복된다. (Overlapping Sub-problems)

· 가정 2 : 작은 문제에서 구한 정답은 그것을 포함하는 큰 문제에서도 같다. 즉, 작은 문제에서 구한 정답을 큰 문제에서도 사용할 수 있다. (Optimal Substructure)

'TIL 👩🏻‍💻' 카테고리의 다른 글

TIL : Promise & Async (1)  (0) 2021.04.27
TIL : Algorithm (2)  (0) 2021.04.20
TIL : Graph & Tree & BST (1)  (0) 2021.04.15
TIL : Stack & Queue  (0) 2021.04.14
TIL : Subclass Dance Party  (0) 2021.04.13