Problem Solving/Topological Sort (위상 정렬)

    프로그래머스 동굴 탐험 - BFS, 위상정렬

    https://programmers.co.kr/learn/courses/30/lessons/67260 코딩테스트 연습 - 동굴 탐험 9 [[0,1],[0,3],[0,7],[8,1],[3,6],[1,2],[4,7],[7,5]] [[8,5],[6,7],[4,1]] true 9 [[8,1],[0,1],[1,2],[0,7],[4,7],[0,3],[7,5],[3,6]] [[4,1],[5,2]] true 9 [[0,1],[0,3],[0,7],[8,1],[3,6],[1,2],[4,7],[7,5]] [[4,1],[8,7],[6,5]] false programmers.co.kr 2020 카카오 인턴쉽 문제입니다. 위상 정렬을 모르고 풀었을 때는 도저히 감이 안왔었는데, 위상 정렬을 한 번 공부하고 나니 그렇게 어렵지 않..

    백준 2252번: 줄세우기 - 위상정렬

    https://www.acmicpc.net/problem/2252 위상정렬은 순서가 정해져있는 작업을 차례로 수행해야 할 때 그 순서를 결정해 주기 위해 사용하는 알고리즘입니다. 예를 들어 A의 작업보다 B의 작업이 먼저 처리 되어야하고, C의 작업이 A의 작업보다 먼저 처리 되어야 한다면 C - A - B 의 순서대로 일을 처리해야 할 것입니다. A의 작업보다 B의 작업이 먼저 처리 되어야하고, C의 작업도 B의 작업보다 먼저 처리 되어야 한다면 A - C - B 도 되고, C - A - B 도 됩니다. 그래서 위상정렬 특성상 별 다른 조건이 없을 경우 여러 답이 나올 수 있습니다. 이제 위에서 얘기한 "작업"을 학생들의 "키"로 생각해보겠습니다. 학생 A의 키가 B보다 크고, C의 키가 A보다 크다는..