문제

코드
# DFS와 BFS
import sys
from collections import deque
input = sys.stdin.readline
# N:노드의 개수
# M:간선의 개수
# START:시작 노드
N, M, START = map(int, input().split())
visited = [False for _ in range(N+1)] # 0은 안쓰는 걸로 생각하고 (N+1)개 제작
graph = [[] for _ in range(N+1)]
for _ in range(M): # 간선의 개수만큼 반복하기
A, B = map(int, input().split())
graph[A].append(B)
graph[B].append(A)
for i in range(1, N+1):
graph[i].sort()
def dfs(v, visited):
visited[v] = True
print(v, end=" ")
for g in graph[v]:
if not visited[g]:
dfs(g, visited)
def bfs(visited):
dq = deque()
dq.appendleft(START)
visited[START] = True
while len(dq) != 0:
v = dq.pop()
print(v, end=" ")
for g in graph[v]:
if not visited[g]: # 만약 인접노드 중 방문하지 않는 노드가 있다면
dq.appendleft(g)
visited[g] = True
dfs(START, visited)
print()
visited = [False for _ in range(N+1)]
bfs(visited)
print()
NOTE
https://www.acmicpc.net/problem/1260
'CodingTest' 카테고리의 다른 글
| [BOJ / Python] 2470 두 용액 + 투포인터 (0) | 2025.04.04 |
|---|---|
| [BOJ / Python]7795 먹을 것인가 먹힐 것인가 (3) | 2025.04.03 |
| [PROGRAMERS / SQL] 노선별 평균 역 사이 거리 조회하기 (0) | 2025.03.26 |
| [BOJ / Python]16953 A->B (0) | 2025.03.25 |
| 코딩테스트 with Python 주요 문법 정리 (0) | 2025.03.25 |