위상 정렬은 왜 큐로 풀릴까: 선수과목과 작업 순서 문제를 DAG로 보는 법
위상 정렬을 왜 큐로 푸는지 진입차수, DAG, 선수과목 예시, 사이클 감지 기준으로 단계적으로 설명합니다. 작업 순서 문제를 그래프로 바꾸는 사고법과 코드 흐름, 자주 헷갈리는 지점과 실수 포인트를 함께 정리합니다.
위상 정렬을 왜 큐로 푸는지 진입차수, DAG, 선수과목 예시, 사이클 감지 기준으로 단계적으로 설명합니다. 작업 순서 문제를 그래프로 바꾸는 사고법과 코드 흐름, 자주 헷갈리는 지점과 실수 포인트를 함께 정리합니다.
DP 점화식을 외우기보다 상태 정의, 선택지, 이전 상태, 초기값, 순회 방향으로 세우는 방법을 코딩테스트 예제로 정리합니다.
다익스트라에서 visited가 꼭 필요한지, 우선순위 큐 구현에서 outdated entry를 어떻게 처리하는지 정리합니다. dist 배열, heap 중복 삽입, 음수 간선 불가 조건, 구현 실수까지 예제로 설명합니다.
greedy 알고리즘에서 반례가 중요한 이유를 정리합니다. 정렬 기준, 동률 처리, 교환 논증, 회의실 배정과 동전 예시로 선택 기준 검증법, 실수 패턴, DP와 구분하는 신호, 연습 루틴까지 쉽게 단계별로 설명합니다.
동적 계획법에서 메모이제이션과 테이블 방식의 차이를 top-down, bottom-up 관점으로 설명합니다. 재귀, 반복문, 초기값, 순회 방향, 코딩테스트 선택 기준을 Python 예제로 정리합니다.
누적합을 떠올려야 하는 문제 신호와 1차원/2차원 prefix sum, off-by-one 실수를 예제로 설명합니다. 구간 합을 매번 다시 계산하지 않고 빠르게 구하는 기준과 실전 실수를 정리합니다.