백준 문제 풀이/DFS, BFS 3

2606 바이러스 (python)

문제  첫 번째 풀이import sysinput = sys.stdin.readlinecomputer = int(input().strip())n = int(input().strip())connect = []for _ in range(n):    connect.append(list(map(int, input().strip().split())))virus = [0] * (computer + 1)virus[1] = 1def spread_virus(start):    queue = [start]        while queue:        current = queue.pop(0)        for a, b in connect:            if a == current and virus[b] == 0:..

2178 미로탐색 (python)

문제 코드import sysfrom collections import dequeinput = sys.stdin.readlinen, m  = map(int, input().split())graph = []for _ in range(n):    graph.append(list(map(int, input().rstrip())))dx = [-1, 1, 0, 0]dy = [0, 0, -1, 1]def BFS(x, y):    queue = deque()    queue.append((x, y))    while queue:        x, y = queue.popleft()        for i in range(4):            nx = x + dx[i]            ny = y + dy[i]..

1697 숨바꼭질 (python)

문제 알고리즘BFS 탐색을 사용해 풀 수 있다.코드import sysfrom collections import dequedef bfs(v):    q = deque([v]) # 시작점 v를 q에 추가    while q:        v = q.popleft() # 덱의 왼쪽에서 요소 제거하고 반환        if v == k: # 현 위치가 동생과 같을 때            return array[v]        # 다음 위치로 이동할 수 있는 경우의 수 확인        for next_v in (v-1, v+1, 2*v):            # 위치가 범위 내에 있고, 아직 방문하지 않은 위치라면            if 0 next_v MAX and not array[next_v]:  ..