https://www.acmicpc.net/problem/1260
from collections import deque
# DFS
def dfs(now):
for nxt in range(N):
if (li[now][nxt] or li[nxt][now]) and nxt+1 not in dfs_li:
dfs_li.append(nxt+1)
dfs(nxt)
# BFS
def bfs():
dq = deque()
dq.append(V-1)
bfs_li.append(V)
while dq:
now = dq.popleft()
for nxt in range(N):
if (li[now][nxt] or li[nxt][now]) and nxt+1 not in bfs_li:
dq.append(nxt)
bfs_li.append(nxt+1)
N, M, V = map(int, input().split(" "))
li = [[0] * N for _ in range(N)]
for _ in range(M):
a, b = map(int, input().split(" "))
li[a-1][b-1] = 1
dfs_li = list()
dfs_li.append(V)
dfs(V-1)
for i in dfs_li:
print(i, end=" ")
print()
bfs_li = list()
bfs()
for i in bfs_li:
print(i, end=" ")
print()'코딩테스트 > 코딩테스트 문제풀이' 카테고리의 다른 글
| [Python] 백준 <2667-단지번호붙이기> (0) | 2025.05.19 |
|---|---|
| [Python] 프로그래머스 <게임 맵 최단거리> (0) | 2025.05.19 |
| [Python] 프로그래머스 <할인 행사> (0) | 2025.05.13 |
| [Python] 프로그래머스 <구명보트> (0) | 2025.05.12 |
| [Python] 프로그래머스 <JadenCase 문자열 만들기> (0) | 2025.05.11 |