반응형
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))
반응형
'코딩테스트 > 백준문제' 카테고리의 다른 글
[python 파이썬] 백준 2178번 : 미로 탐색 (0) | 2020.08.31 |
---|---|
[python 파이썬] 백준 1303번 : 전쟁 - 전투 (0) | 2020.08.30 |
연쇄행렬 최소곱셈 알고리즘 (0) | 2020.08.12 |
[python 파이썬] 백준 11066번 파일 합치기 (0) | 2020.08.12 |
[python 파이썬] 백준 1520번 내리막 길 (0) | 2020.08.06 |