목록Algorithms/BFS and DFS (11)
https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로�� www.acmicpc.net from collections import deque n, m = map(int, input().split()) maps = [list(map(int, input())) for _ in range(n)] dist = [[[0, 0] for _ in range(m)] for _ in range(n)] # d / u / r / l dirs = [(1,0), (-1,0), ..
https://www.acmicpc.net/problem/3055 3055번: 탈출 문제 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치�� www.acmicpc.net from collections import deque r, c = map(int, input().split()) forest = [] water = [] for i in range(r): arr = input() for j in range(len(arr)): if arr[j] == 'D': # finish finish = (i,j) elif arr[j] == 'S': start = [(i,j)] elif ..
https://www.acmicpc.net/problem/1325 max_value: result = [i] max_value = c elif c == max_value: result.append(i) max_value = c for e in result: print(e, end=' ')
https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net # BFS / DFS from collections import deque def dfs(v): print(v, end=' ') visited[v] = True for e in adj[v]: if not(visited[e]): dfs(e) def bfs(v): q = deque([v]) while q: v = q.popleft() if not(visited[v..
https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 � www.acmicpc.net import sys sys.setrecursionlimit(100000) def dfs(x, y): visited[x][y] = True directions = [(-1,0),(1,0),(0,-1),(0,1)] for dx, dy in directions: nx, ny = x+dx, y+dy if nx = n or ny = m: continue if arr[nx][n..