[Python] 백준 1260 - DFS와 BFS

혜원·2023년 1월 29일
0

백준

목록 보기
25/25

백준 1260 - DFS와 BFS

문제

코드

import sys
from collections import deque

input = sys.stdin.readline


def dfs(start):
    visited[start] = True
    print(start, end=' ')
    for i in edge[start]:
        if visited[i] == False:
            dfs(i)


def bfs(start):
    q= deque([start])
    visited[start]=True
    while q:
        m=q.popleft()
        print(m, end=' ')
        for i in edge[m]:
            if visited[i]==False:
                q.append(i)
                visited[i]=True




N, M, V = list(map(int, input().split()))
edge = [[] for i in range(N + 1)]
visited = [False] * (N + 1)

for i in range(M):
    x, y = list(map(int, input().split()))
    edge[x].append(y)
    edge[y].append(x)

for i in edge:
    i.sort()

dfs(V)


visited = [False] * (N + 1)
print()
bfs(V)

해설

  1. DFS, BFS 기초문제로 이들을 이용해서 해결하였다.
profile
안녕하세요

0개의 댓글