[파이썬] SWEA 1267 : 작업 순서 (test)
풀이
방향성 생각
- 위상 정렬 기본문제.
- 진입차수 관리해주면서 큐에 계속 넣어주기.
전체코드
from collections import deque
TC = 10
for tc in range(1,TC+1):
N,M = map(int,input().split())
infos = list(map(int,input().split()))
G = [[] for _ in range(N+1)]
for i in range(M):
a,b = infos[2*i:2*i+2]
G[a].append(b)
# 진입차수 체크
rank = [0]*(N+1)
for x in range(1,N+1):
for y in G[x]:
rank[y] += 1
# 진입차수 0인거 큐에 넣기
Q = deque()
for x in range(1,N+1):
if not rank[x]:
Q.append(x)
# 반복해서 진입차수 관리해주기.
answer = []
while Q:
x = Q.popleft()
answer.append(x)
for nx in G[x]:
rank[nx] -= 1
if not rank[nx]:
Q.append(nx)
print(f"#{tc}", end=' ')
print(*answer)
코멘트
- .
'Algorithm > Graph' 카테고리의 다른 글
[파이썬] 백준 18133 : 가톨릭대학교에 워터 슬라이드를?? (플레4) (0) | 2025.03.09 |
---|---|
[파이썬] 백준 26146 : 즉흥 여행 (easy) (플레5) (0) | 2025.03.09 |
[자바] SWEA 7733 : 치즈 도둑 (D4) (0) | 2025.03.09 |
[파이썬] SWEA 1247 : 최적 경로 (D5) (0) | 2025.03.09 |
[파이썬, 자바] 백준 1506 : 경찰서 (플레5) (0) | 2025.03.09 |
[파이썬, 자바] 백준 4196 : 도미노 (플레4) (0) | 2025.03.08 |
[파이썬] 백준 2150 : Strongly Connected Component (플레5) (0) | 2025.03.07 |
댓글