B-des 알고리즘 선택

그래프·탐색·정렬·해싱을 입력 조건으로 고르는 법

알고리즘 이름을 아는 것보다 문제의 입력 구조를 먼저 읽는 것이 중요하다. 방향성, 가중치, 정렬 필요성, 검색 빈도가 선택 기준을 결정한다.

01

자료 모양 확인

선형 목록인지, 계층인지, 임의 관계인지 먼저 구분한다.

모양이 알고리즘을 좁힘
02

연산 빈도

삽입, 삭제, 조회, 순회 중 가장 자주 반복되는 연산을 확인한다.

최악보다 반복 비용
03

제약 읽기

입력 크기, 메모리 제한, 실시간성, 정렬 여부를 조건으로 삼는다.

O(n^2) 한계 판단
04

예외 검증

중복, 음수 가중치, 사이클, 연결 끊김 같은 조건을 별도로 확인한다.

반례가 선택을 바꿈
BFS
간선 비용이 같을 때 최단 단계 큐를 사용하고 먼저 발견한 깊이가 최소 이동 횟수다.
방문 체크 시점 중요
DFS
경로 탐색과 백트래킹 재귀 또는 스택으로 깊게 내려가며 조건을 만족하는 조합을 찾는다.
사이클 방지 필요
Dijkstra
음수 없는 가중 최단거리 우선순위 큐로 현재 가장 짧은 후보를 확정한다.
음수 간선이면 부적합
Hash
키 기반 평균 O(1) 조회 충돌, 해시 함수, 순서 보장 여부가 실사용 판단을 바꾼다.
정렬 출력에는 약함

정렬 안정성 · 그래프 밀도 · 방문 배열 점검

정렬 안정성 같은 키의 원래 순서가 필요하면 안정 정렬을 고른다.
그래프 밀도 간선이 많으면 인접 행렬, 적으면 인접 리스트가 유리한 경우가 많다.
방문 배열 탐색 문제는 중복 방문을 막지 않으면 시간과 정답이 함께 무너진다.