코딩테스트/백준문제

[python 파이썬]백준 1260번 : DFS와 BFS

jaewon_sss 2020. 8. 27. 19:21
반응형

BFS/DFS 좋은 문제 추천


https://won-percent.tistory.com/34?category=1145094



문제


https://www.acmicpc.net/problem/1260



풀이


dfs - 재귀      bfs - 큐


를 이용해서 푸는 것이 일반적이라고 한다.






마지막 (* list) 에서


print(list) # [0, 1, 2]


이렇게 값이 출력된다면


print(*list) # 0, 1, 2


이렇게 값이 출력된다.




처음 알았다. 역시 파이썬



import sys
input = sys.stdin.readline

N,M,V = map(int,input().split())

graph = [[-1] * (N+1) for _ in range(N+1)]

for i in range(M):
a,b = map(int, input().split())
graph[a][b] = 0
graph[b][a] = 0

def dfs(start, visited):
visited += [start]
for i in range(len(graph[start])):
if graph[start][i] == 0 and i not in visited:
dfs(i, visited)
return visited

def bfs(start):
visited = [start]
queue = [start]

while queue:
now = queue.pop(0)
for i in range(len(graph[start])):
if graph[now][i] == 0 and i not in visited:
queue.append(i)
visited.append(i)
return visited


print(*dfs(V,[]))
print(*bfs(V))


반응형