백준 2252번1 [백준 2252번 | 골드3] Python 풀이 문제를 보면 1 3, 3 2 이런식으로 두 개의 숫자를 주는데 왼쪽의 수가 오른쪽의 수보다 앞에 있어야 한다는 조건이 있다. 여기 이 문제가 위상정렬 문제임을 알 수 있다. (여러 가지 일이 있는데 이들 상호 간에 상호 선후 관계가 있을 때 위상정렬을 사용한다.) 위상정렬에서는 크게 두 가지 방법이 있다고 한다. 1. 진입 간선이 없는 정점을 선택하고 해당 정점과 연결되어 있는 정점 방문을 반복하면서 진출 간선을 하나씩 없애는 방법. 2. DFS(+백트래킹) 나는 2번 방식으로 풀어보았다. (시간나면 1번으로도 풀어서 수정하겠습니다.) from collections import deque import sys input = sys.stdin.readline def dfs(v): visited[v]=1 fo.. 2024. 1. 8. 이전 1 다음