티스토리 뷰
1. 문제 내용
2. 접근 방식
문제 이름에서 사용해야 할 알고리즘을 알려주고 있기 때문에 별다른 접근 방식은 없다.
3. 정답 코드
from collections import deque
def dfs(n):
print(n, end=' ')
visited[n] = True
for i in graph[n]:
if not visited[i]:
dfs(i)
def bfs(n):
visited[n] = True
queue = deque([n])
while queue:
q = queue.popleft()
print(q, end=' ')
for i in graph[q]:
if not visited[i]:
visited[i] = True
queue.append(i)
# main
n, m, v = map(int, input().split())
graph = [[] for _ in range(n + 1)]
for _ in range(m):
x, y = map(int, input().split())
graph[x].append(y)
graph[y].append(x)
# 정점 번호가 작은 것이 먼저 오도록 정렬
for i in range(n + 1):
graph[i].sort()
# 출력
visited = [False] * (n + 1)
dfs(v)
print()
visited = [False] * (n + 1)
bfs(v)
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준] 2178번 미로 탐색 파이썬 정답 코드 (0) | 2023.05.23 |
---|---|
[백준] 1003번 피보나치 함수 파이썬 정답 코드 (0) | 2023.05.21 |
[백준] 2606번 바이러스 파이썬 정답 코드 (0) | 2023.05.21 |
[백준] 2748번 피보나치 수 2 파이썬 정답 코드 (0) | 2023.05.21 |
[백준] 2775번 부녀회장이 될테야 파이썬 정답 코드 (0) | 2023.05.21 |