세상의 모든 알고리즘
[백준 1260번 python] DFS와 BFS 문제 본문
https://www.acmicpc.net/problem/1260
from collections import deque
n,m,v = map(int, input().split())
graph = [[] for _ in range(n+1)]
visited_dfs = [0] * (n+1)
visited_bfs = [0] * (n+1)
for _ in range(m):
a,b = map(int, input().split())
graph[a].append(b)
graph[b].append(a)
def dfs(v):
visited_dfs[v] = 1
print(v,end=' ')
graph[v].sort()
for i in graph[v]:
if visited_dfs[i] == 0:
dfs(i)
def bfs(v):
visited_bfs[v] = 1
q = deque()
q.append(v)
while q:
a = q.popleft()
print(a,end=" ")
graph[a].sort()
for i in graph[a]:
if visited_bfs[i] == 0:
visited_bfs[i] =1
q.append(i)
dfs(v)
print()
bfs(v)
느낀점
dfs쪽 오류가 많이 나와서 리스트 초기화부터 전부 바꾸면서 해결하기 힘들었다.
두가지 정점을 탐색가능할때 작은 수 부터 탐색하는것을 생각안하고 계속 오답이 나와서 찾는데 힘들었다..
'python' 카테고리의 다른 글
[백준 2178번 python] 미로 탐색 문제 (0) | 2021.11.04 |
---|---|
[백준 7576번 python] 토마토 문제 (0) | 2021.11.04 |
[이것이코딩테스트다 Python] 미로 탈출 (0) | 2021.11.03 |
[이것이코딩테스트다 python] 음료수얼려먹기 (0) | 2021.11.01 |
dfs , bfs 탐색방식 이해하기 (0) | 2021.11.01 |