문제풀이/DFS_BFS

https://www.acmicpc.net/problem/2589 코드from collections import dequeimport sysinput = sys.stdin.readliner, c = map(int, input().split())board = [input() for _ in range(r)]def bfs(x, y): # (x, y)에서 이동할 수 있는 육지 중 가장 먼 곳까지의 이동 시간 dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] max_dist = 0 visited = [[False]*c for _ in range(r)] visited[x][y] = True q = deque([(x, y, 0)]) while q: ..
https://www.acmicpc.net/problem/6118 코드from collections import dequen, m = map(int, input().split())graph = [[] for _ in range(n+1)]for _ in range(m): a, b = map(int, input().split()) graph[a].append(b) graph[b].append(a)# BFSq = deque([1])dist = [int(1e9)]*(n+1)dist[1] = 0ans = [-1, -1, -1]while q: now = q.popleft() for nx in graph[now]: if dist[nx] > dist[now]+1: ..
https://www.acmicpc.net/problem/14248 코드from collections import dequen = int(input())a = list(map(int, input().split()))start = int(input())-1q = deque([start])visited = [False]*nvisited[start] = Trueans = 1while q: now = q.popleft() # 왼쪽, 오른쪽 for nx in [now-a[now], now+a[now]]: if 0  단순히 각 돌에 방문할 수 있는지 여부만 판단하면 되기 때문에 BFS를 이용하여 갈 수 있는 돌들을 방문하며 개수를 세면 된다.
1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net 코드 from collections import deque n, m = map(int, input().split()) board = [input() for _ in range(m)] visited = [[False]*n for _ in range(m)] power = {"W": 0, "B": 0} # 각 나라의 병사의 위력의 합 def bfs(x, y, color): dx = [0, 0, -1, 1] dy = [-1, 1, 0, 0] q..
15644번: 구슬 탈출 3 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 코드 from collections import deque n, m = map(int, input().split()) board = [] rx, ry = 0, 0 bx, by = 0, 0 for i in range(n): row = list(input().rstrip()) for j in range(m): if row[j] == 'R': rx, ry = i, j elif row[j] == 'B': bx, by = ..
딜레이레이
'문제풀이/DFS_BFS' 카테고리의 글 목록 (2 Page)