알고리즘, 코테 준비

알고리즘 종류와 유형

Multitab 2022. 11. 6. 21:48

알고리즘 종류와 유형

1. 문자열

2. 분리집합(유니온 파인드)

3. 트리

4. 완전탐색

5. 그래프 탐색

6. 이분탐색

순차탐색처럼 처음부터 끝까지 하나씩 모든 데이터를 체크하여 값을 찾는 것이 아니라

탐색 범위를 절반씩 줄여가며 찾아가는 Search 방법이다.

7. 투포인터

리스트에 순차적으로 접근해야 할 때 두 개의 점의 위치를 기록하면서 처리하는 알고리즘

8. 동적계획법

조건

  1. 최적 부분 구조 : 큰문제를 작은 문제로 나누며 작은 문제의 답으로 큰 문제를 해결할수 있는가
  2. 동일하게 반복되는 작은 문제로 해결할수 있는가

공략

  1. 점화식을 구해야한다.
  2. 동적계획법의 조건을 따벼보고 최종적으로 해결해야할 문제를 확인한다.
  3. 작은 문제와 큰문제 사이의 관계를 점화식으로 표현해본다.
    1. 메모이제이션을 이용한 재귀함수 해결법(Top-down)
    2. 결과 저장용 리스트 DP테이블을 이용한 해결법(Bottom-up)

9. 백트래킹

개요

해를 찾아가는 도중, 지금의 경로가 해가 될 것 같지 않으면 그 경로를 더이상 가지 않고 되돌아갑니다.

이를 가지치기라고 하는데, 불필요한 부분을 쳐내고 최대한 올바른 쪽으로 간다는 의미입니다.

답이 될 만한지 판단하고 그렇지 않으면 그 부분까지 탐색하는 것을 하지 않고 가지치기 하는 것을 백트래킹이라고 생각하면 됩니다.

10. 누적합

누적 합이란, 말 그대로 나열된 수의 누적된 합을 말한다.

11. 탐욕법

탐욕 알고리즘은 말 그대로 선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫓아 최종적인 해답에 도달하는 방법이다.

12. 최단거리 알고리즘

다익스트라 알고리즘

**다익스트라 알고리즘은 음의 가중치가 없는 그래프의 한 정점에서 모든 정점까지의 최단거리를 구하는 알고리즘이다.**

1. 출발 노드 지정

2. 최단 거리 테이블 초기화

3. 방문한 적 없는 노드 중에서 최단 거리가 제일 짧은 노드를 선택

4. 해당 노드를 거쳐 다른 노드로 가는 거리를 구하여 최단 거리 테이블을 업데이트

5. 위 3, 4번 과정을 모든 노드를 방문할 때까지 반복

플로이드 알고리즘

플로이드-워셜 알고리즘은 한 번 실행하여 모든 노드 간 최단 경로를 구할 수 있습니다.

모든 노드 간의 최단거리를 구해야 하므로 2차원 인접 행렬을 구성합니다. 알고리즘은 여러 라운드로 구성됩니다. 라운드마다 각 경로에서 새로운 중간 노드로 사용할 수 있는 노드를 선택하고, 더 짧은 길이를 선택하여 줄이는 과정을 반복합니다.

13. 시뮬레이션

일련의 명령에 따라서 개체를 차례대로 이동시키는 것

14. 분할정복

분할정복 알고리즘은 문제를 나눌 수 없을 때까지 나누어서 각각을 풀면서 다시 합병하여 문제의 답을 얻는 알고리즘이다.

15. 구현

머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정

'알고리즘, 코테 준비' 카테고리의 다른 글

그래프 탐색  (0) 2022.11.06
문자열  (1) 2022.11.06
백준 1174 - 줄어드는 수  (0) 2022.10.11
백준1068 - 트리  (2) 2022.10.07
백준22856 - 트리순회  (0) 2022.10.06