From 21c4366e58002516b8934c32abd09854333f05cc Mon Sep 17 00:00:00 2001 From: nkey Date: Fri, 13 Feb 2026 16:40:57 +0900 Subject: [PATCH] =?UTF-8?q?14940-s1=20=EC=84=B1=EA=B3=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workbook_8708/14940-s1.py | 67 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 workbook_8708/14940-s1.py diff --git a/workbook_8708/14940-s1.py b/workbook_8708/14940-s1.py new file mode 100644 index 0000000..1b94dc2 --- /dev/null +++ b/workbook_8708/14940-s1.py @@ -0,0 +1,67 @@ +# 쉬운 최단거리 + +import sys +from collections import deque + +input = sys.stdin.readline + +def find_target(grid, n, m): + for i in range(n): + for j in range(m): + if grid[i][j] == 2: + target = (i, j) + return target + return (-1, -1) + +def set_zero_land(grid, visited, n, m): + for i in range(n): + for j in range(m): + if grid[i][j] == 0: + visited[i][j] = 0 + return + + +def bfs(grid, target, n, m): + dr = [1, -1, 0, 0] + dc = [0, 0, 1, -1] + visited = [[-1]*m for _ in range(n)] + set_zero_land(grid, visited, n, m) + q = deque([target]) + visited[target[0]][target[1]] = 0 + + while q: + r, c = q.popleft() + for i in range(4): + now_r, now_c = r+dr[i], c+dc[i] + if now_r == target[0] and now_c == target[1]: + continue + if 0 <= now_r < n and 0 <= now_c < m and grid[now_r][now_c] != 0 and visited[now_r][now_c] == -1: + q.append((now_r, now_c)) + visited[now_r][now_c] = visited[r][c] + 1 + + return visited + +def solution(): + n, m = map(int, input().rstrip().split()) + + grid = [list(map(int, input().rstrip().split())) for _ in range(n)] + + target = find_target(grid, n, m) + + result = bfs(grid, target, n, m) + + for i in range(n): + print(*result[i]) + + return + + +solution() + +""" +걸린 시간: 2:39~56 51~ + +시간 복잡도: + +해설: +""" \ No newline at end of file