BOJ 1260 DFS와 BFS

LONGNEW·2021년 1월 16일
0

BOJ

목록 보기
52/333

https://www.acmicpc.net/problem/1260
시간 2초, 메모리 128MB
input :

  • N M V (1 ≤ N ≤ 1,000)(1 ≤ M ≤ 10,000)
  • A B(양방향 간선의 정보 입력)

output :

  • DFS를 수행한 결과
  • BFS를 수행한 결과

재밌는 DFS, BFS 구현하기~ 다행히도 힘들지 않았다.... 개 다행

함수에 집어 넣기 전에
visit 초기화 해야 한다는것.

graph 길이 조심.

매번 visit을 언제 바꿔줘야 되는가가 헷갈리는데.
next_node 확인 할 때 바꿔주자.

import sys
from _collections import deque
n, m, v= map(int, sys.stdin.readline().split())
graph = [[] for i in range(n + 1)]

for i in range(m):
    a, b = map(int, sys.stdin.readline().split())
    graph[a].append(b)
    graph[b].append(a)

for i in range(n + 1):
    graph[i].sort()

def DFS(start):
    visit[start] = True
    print(start, end=" ")

    for i in graph[start]:
        if not visit[i]:
            DFS(i)

def BFS(start):
    q = deque([start])
    visit[start] = True

    while q:
        now = q.popleft()
        print(now, end=" ")

        for i in graph[now]:
            if not visit[i]:
                q.append(i)
                visit[i] = True


visit = [False] * (n + 1)
DFS(v)
print()
visit = [False] * (n + 1)
BFS(v)

0개의 댓글