문제 링크: https://www.acmicpc.net/problem/16940
백준 알고리즘 기초 2/2 602에서 1번째 - 16940번 BFS 스페셜 저지를 풀어보았다.
풀이: https://dallae7.tistory.com/133
C++
Python
import sys
from collections import deque
input=sys.stdin.readline
def bfs(s):
visited=[False]*(n+1)
q=deque()
q.append(s)
ret=[1]
visited[s]=True
while q:
start = q.popleft()
for node in graph[start]:
if not visited[node]:
q.append(node)
visited[node]=True
ret.append(node)
return ret
n=int(input())
graph=[[] for _ in range(n+1)]
for _ in range(n-1):
a, b = map(int, input().split())
graph[a].append(b)
graph[b].append(a)
result=list(map(int, input().split()))
order=[0]*(n+1)
for i in range(len(result)):
order[result[i]]=i
for i in range(1, len(graph)):
graph[i].sort(key=lambda x:order[x])
ret=bfs(1)
if ret==result:
print(1)
else:
print(0)
Java
'코테용 문제풀이 > 백준' 카테고리의 다른 글
다리 만들기 풀이 (0) | 2023.02.08 |
---|---|
DFS 스페셜 저지 풀이 (0) | 2023.02.08 |
서울 지하철 2호선 풀이 (0) | 2023.02.07 |
Two Dots 풀이 (0) | 2023.02.07 |
나이트의 이동 풀이 (0) | 2023.02.07 |