코드#include #include #include using namespace std;int n,m,indegree[1003],x,y, visited[1003];vector adj[1003];int main() { cin >> n >> m; for(int i = 0; i > x >> y; adj[x].push_back(y); indegree[y]++; } queue q; for(int i = 1; i 풀이선수과목 문제는 전형적인 위상정렬 문제이다. 몇 번째에 듣는지가 중요했는데, visited 배열을 이용해서 방문 순서를 체크해주면 된다.왜 저번엔 이게 그렇게 기억이 안났지... 오늘은 그냥 한 번에 생각났는데. 알기 힘들다 진짜.
14567번
코드 # 선수과목에는 사이클이 생길 수 없다. 따라서 유향 비순환 그래프이다. # 몇 학기 째에 들을 수 있는지 확인해야하므로 위상정렬 이용 import sys from collections import deque input = sys.stdin.readline n,m = map(int,input().split()) graph = [[] for _ in range(n+1)] indegree = [0]*(n+1) # 전입차수 visited = [0]*(n+1) # 학기 기록용 방문리스트 for _ in range(m): x,y = map(int, input().split()) graph[x].append(y) indegree[y]+=1 def topol_sort(): queue = deque() for i..