https://www.acmicpc.net/problem/14940
14940번: 쉬운 최단거리
지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이
www.acmicpc.net
나의 코드
# 쉬운 최단거리
n, m = map(int, input().split())
arr = [list(map(int, input().split())) for _ in range(n)]
visited = [[0]*m for _ in range(n)]
di = [0, 1, 0, -1]
dj = [1, 0, -1, 0]
depth = 0
q = []
for i in range(n):
for j in range(m):
if arr[i][j] == 2:
q.append([i, j])
visited[i][j] = 1
arr[i][j] = 0
while q:
x, y = q.pop(0)
for k in range(4):
ni = x + di[k]
nj = y + dj[k]
if 0 <= ni < n and 0 <= nj < m and arr[ni][nj] == 1 and visited[ni][nj] == 0:
q.append([ni, nj])
visited[ni][nj] = 1
arr[ni][nj] = arr[x][y] + 1
for i in range(n):
for j in range(m):
if arr[i][j] == 1 and visited[i][j] == 0: # 갈 수 있는 길인데 방문못하는 곳은 -1
arr[i][j] = -1
for i in arr:
print(*i)
결과

문제 제대로 안읽고 갈 수 있는 땅인데 방문 못하는 곳은 -1로 출력해야 하는 부분을 놓쳤다. 그 부분을 추가하니 성공!
'스터디 1일 1커밋' 카테고리의 다른 글
| 240408 [BOJ/백준] 7576. 토마토 (0) | 2024.04.08 |
|---|---|
| 240408 [BOJ/백준] 6603. 로또 (0) | 2024.04.08 |
| 240407 [BOJ/백준] 1759. 암호 만들기 (1) | 2024.04.07 |
| 240407 [BOJ/백준] 2908. 상수 (0) | 2024.04.07 |
| 240406 [BOJ/백준] 23254. 나는 기말고사형 인간이야 (0) | 2024.04.06 |