코딩테스트

[코테] 알고리즘의 종류

인어공쭈 2024. 3. 22. 14:56

자 이제 코테준비를 다시 시작하는 의미에서 알고리즘 공부를 시작해보겠다.

이전에는 그냥 부딪혀서 문제풀이에 집중했었는데 알고리즘 공부를 제대로 할 필요성을 느껴서 한번 정리해보았다.

앞으로도 조금씩 정리할계획!!

 

우선 대표적인 알고리즘 종류에 대해서 알아보자

 

1. 탐색 알고리즘(Search Algorithms):
탐색 알고리즘은 주어진 데이터에서 원하는 값을 찾는 데 사용된다. 대표적인 탐색 알고리즘으로는 선형 탐색(Linear Search)과 이진 탐색(Binary Search)이 있다.

 

2. 정렬 알고리즘(Sorting Algorithms):
정렬 알고리즘은 데이터를 특정한 기준에 따라 정렬하는 데 사용된다. 대표적인 정렬 알고리즘으로는 버블 정렬(Bubble Sort), 선택 정렬(Selection Sort), 삽입 정렬(Insertion Sort), 병합 정렬(Merge Sort), 퀵 정렬(Quick Sort) 등이 있다.

 

3. 그래프 알고리즘(Graph Algorithms):
그래프 알고리즘은 그래프 구조에서의 탐색과 관련된 문제를 해결하는 데 사용된다. 대표적으로 너비 우선 탐색(Breadth-First Search, BFS)과 깊이 우선 탐색(Depth-First Search, DFS)이 있다.

 

4. 동적 계획법(Dynamic Programming):
동적 계획법은 큰 문제를 작은 하위 문제로 나누어 해결하는 방법. 작은 하위 문제의 해결 방법을 저장하고 재활용함으로써 중복 계산을 줄여 효율적으로 문제를 해결한다.

 

5. 그리디 알고리즘(Greedy Algorithms):
그리디 알고리즘은 각 단계에서 가장 최적의 선택을 하는 알고리즘. 각 선택은 지역적으로 최적이지만 전체적으로 최적이라는 보장은 없다.


5.해시 알고리즘(Hashing):

데이터를 효율적으로 검색하고 저장하기 위해 사용. 해시 함수는 입력 데이터를 고정된 크기의 값으로 매핑하는 함수이다.

 

6. 분할 정복(Divide and Conquer):
분할 정복은 큰 문제를 작은 부분 문제로 분할하고 각 부분 문제를 독립적으로 해결한 뒤, 결과를 결합하여 원래 문제의 해를 구하는 방법이다.

 

프로그래머스 기준으로 코딩테스트에 자주 나오는 유형들이다.

 

이제 간단한 예제들을 통해서 알고리즘을 직접 구현해보자 길어질거 같으니 예제 코드들은 다음글로 작성해야지~

 

반응형