백준 2606번-BFS, DFS solution (Python)
BFS 풀이(1) - deque, list 사용
from collections import deque
N = int(input())
matrix = [0] * (N+1)
computer = [[] for _ in range(N+1)]
for i in range(int(input())):
a, b = map(int, input().split())
computer[a].append(b)
computer[b].append(a)
matrix[1] = 1
q = deque([1])
while q:
x = q.popleft()
for i in range(len(computer[x])):
if matrix[computer[x][i]] == 0:
q.append(computer[x][i])
matrix[computer[x][i]] = 1
print(sum(matrix) - 1)
BFS 풀이(2) - dictionary 사용
from sys import stdin
input = stdin.readline
computer = {}
for i in range(int(input())):
computer[i+1] = set()
for j in range(int(input())):
a, b = map(int, input().split())
computer[a].add(b)
computer[b].add(a)
def BFS(start, computer):
q = [start]
while q:
for i in computer[q.pop()]:
if i not in visited:
visited.append(i)
q.append(i)
visited = []
BFS(1, computer)
print(len(visited) - 1)
DFS 풀이 - dictionary, 재귀 사용, BFS 풀이(2)와 비슷
from sys import stdin
input = stdin.readline
computer = {}
for i in range(int(input())):
computer[i+1] = set()
for j in range(int(input())):
a, b = map(int, input().split())
computer[a].add(b)
computer[b].add(a)
def DFS(start, computer):
for i in computer[start]:
if i not in visited:
visited.append(i)
DFS(i, computer)
visited = []
DFS(1, computer)
print(len(visited) - 1)
문제 출처 백준2606번
Author And Source
이 문제에 관하여(백준 2606번-BFS, DFS solution (Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@whiteamericano/백준-2606번-BFS-DFS-solution-Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)