1260번 문제이다.
사진을 누르면 문제로 이동한다.
문제는 Python언어로 구현하였다.
from sys import stdin
n, m, v = map(int, stdin.readline().split())
matrix = [[0] * (n + 1) for _ in range(n + 1)]
for _ in range(m):
line = list(map(int, stdin.readline().split()))
matrix[line[0]][line[1]] = 1
matrix[line[1]][line[0]] = 1
def bfs(start):
visited = [start]
queue = [start]
while queue:
n = queue.pop(0)
for c in range(len(matrix[start])):
if matrix[n][c] == 1 and (c not in visited):
visited.append(c)
queue.append(c)
return visited
def dfs(start, visited):
visited += [start]
for c in range(len(matrix[start])):
if matrix[start][c] == 1 and (c not in visited):
dfs(c, visited)
return visited
print(*dfs(v,[]))
print(*bfs(v))
'Algorithm' 카테고리의 다른 글
[BAEKJOON] 11401번: 이항 계수 3 (0) | 2021.11.03 |
---|---|
[BAEKJOON] 2178번: 미로탐색 (0) | 2021.10.26 |
[BAEKJOON] 10828번: 스택 (0) | 2021.09.30 |
[BAEKJOON] 1874번: 스택 수열 (0) | 2021.09.30 |
[BAEKJOON] 1074번: Z (0) | 2021.09.27 |