[백준] 1260번 - DFS와 BFS

fooooif·2021년 7월 4일
0
post-thumbnail

✍ 문제


문제링크 : https://www.acmicpc.net/problem/1260

👏 풀이과정

기본적인 Dfs Bfs문제이다. 처음 설정할때 matrix의 사이즈를 1을 늘려주어 따로 변경해주지 않았다.

import sys

N, M, V = map(int, sys.stdin.readline().split())

matrix = [[0] * (N+1) for _ in range(N+1)]
for _ in range(M):
    list_a = list(map(int,sys.stdin.readline().split()))
    matrix[list_a[0]][list_a[1]] = 1
    matrix[list_a[1]][list_a[0]] = 1
def dfs(index , visited):
    if index in visited:
        return
    visited.append(index)
    for i in range(N+1):
        if matrix[index][i] == 1:
            dfs(i,visited)
    return visited
def bfs(visited):
    queue.append(V)
    while len(queue) != 0:
        temp = queue.pop(0)
        if temp in visited:
            continue
        visited.append(temp)
        for i in range(N+1):
            if matrix[temp][i] ==1:
                queue.append(i)

    return visited
queue = []
print(*dfs(V, []))
print(*bfs([]))
profile
열심히 하자

0개의 댓글