λ¬Έμ
μ² μμ ν λ§ν λμ₯μμλ ν λ§ν λ₯Ό 보κ΄νλ ν° μ°½κ³ λ₯Ό κ°μ§κ³ μλ€. ν λ§ν λ μλμ κ·Έλ¦Όκ³Ό κ°μ΄ 격μ λͺ¨μ μμμ μΉΈμ νλμ© λ£μ΄μ μ°½κ³ μ 보κ΄νλ€.

μ°½κ³ μ 보κ΄λλ ν λ§ν λ€ μ€μλ μ μ΅μ κ²λ μμ§λ§, μμ§ μ΅μ§ μμ ν λ§ν λ€λ μμ μ μλ€. λ³΄κ΄ ν νλ£¨κ° μ§λλ©΄, μ΅μ ν λ§ν λ€μ μΈμ ν κ³³μ μλ μ΅μ§ μμ ν λ§ν λ€μ μ΅μ ν λ§ν μ μν₯μ λ°μ μ΅κ² λλ€. νλμ ν λ§ν μ μΈμ ν κ³³μ μΌμͺ½, μ€λ₯Έμͺ½, μ, λ€ λ€ λ°©ν₯μ μλ ν λ§ν λ₯Ό μλ―Ένλ€. λκ°μ λ°©ν₯μ μλ ν λ§ν λ€μκ²λ μν₯μ μ£Όμ§ λͺ»νλ©°, ν λ§ν κ° νΌμ μ μ λ‘ μ΅λ κ²½μ°λ μλ€κ³ κ°μ νλ€. μ² μλ μ°½κ³ μ 보κ΄λ ν λ§ν λ€μ΄ λ©°μΉ μ΄ μ§λλ©΄ λ€ μ΅κ² λλμ§, κ·Έ μ΅μ μΌμλ₯Ό μκ³ μΆμ΄ νλ€.
ν λ§ν λ₯Ό μ°½κ³ μ 보κ΄νλ 격μλͺ¨μμ μμλ€μ ν¬κΈ°μ μ΅μ ν λ§ν λ€κ³Ό μ΅μ§ μμ ν λ§ν λ€μ μ λ³΄κ° μ£Όμ΄μ‘μ λ, λ©°μΉ μ΄ μ§λλ©΄ ν λ§ν λ€μ΄ λͺ¨λ μ΅λμ§, κ·Έ μ΅μ μΌμλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νλΌ. λ¨, μμμ μΌλΆ μΉΈμλ ν λ§ν κ° λ€μ΄μμ§ μμ μλ μλ€.
μ λ ₯
첫 μ€μλ μμμ ν¬κΈ°λ₯Ό λνλ΄λ λ μ μ M,Nμ΄ μ£Όμ΄μ§λ€. Mμ μμμ κ°λ‘ μΉΈμ μ, Nμ μμμ μΈλ‘ μΉΈμ μλ₯Ό λνλΈλ€. λ¨, 2 ≤ M,N ≤ 1,000 μ΄λ€. λμ§Έ μ€λΆν°λ νλμ μμμ μ μ₯λ ν λ§ν λ€μ μ λ³΄κ° μ£Όμ΄μ§λ€. μ¦, λμ§Έ μ€λΆν° Nκ°μ μ€μλ μμμ λ΄κΈ΄ ν λ§ν μ μ λ³΄κ° μ£Όμ΄μ§λ€. νλμ μ€μλ μμ κ°λ‘μ€μ λ€μ΄μλ ν λ§ν μ μνκ° Mκ°μ μ μλ‘ μ£Όμ΄μ§λ€. μ μ 1μ μ΅μ ν λ§ν , μ μ 0μ μ΅μ§ μμ ν λ§ν , μ μ -1μ ν λ§ν κ° λ€μ΄μμ§ μμ μΉΈμ λνλΈλ€.
ν λ§ν κ° νλ μ΄μ μλ κ²½μ°λ§ μ λ ₯μΌλ‘ μ£Όμ΄μ§λ€.
μΆλ ₯
μ¬λ¬λΆμ ν λ§ν κ° λͺ¨λ μ΅μ λκΉμ§μ μ΅μ λ μ§λ₯Ό μΆλ ₯ν΄μΌ νλ€. λ§μ½, μ μ₯λ λλΆν° λͺ¨λ ν λ§ν κ° μ΅μ΄μλ μνμ΄λ©΄ 0μ μΆλ ₯ν΄μΌ νκ³ , ν λ§ν κ° λͺ¨λ μ΅μ§λ λͺ»νλ μν©μ΄λ©΄ -1μ μΆλ ₯ν΄μΌ νλ€.
μμ μ λ ₯ 1 볡μ¬
6 4
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 1
μμ μΆλ ₯ 1 볡μ¬
8
μμ μ λ ₯ 2 볡μ¬
6 4
0 -1 0 0 0 0
-1 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 1
μμ μΆλ ₯ 2 볡μ¬
-1
μμ μ λ ₯ 3 볡μ¬
6 4
1 -1 0 0 0 0
0 -1 0 0 0 0
0 0 0 0 -1 0
0 0 0 0 -1 1
μμ μΆλ ₯ 3 볡μ¬
6
μμ μ λ ₯ 4 볡μ¬
5 5
-1 1 0 0 0
0 -1 -1 -1 0
0 -1 -1 -1 0
0 -1 -1 -1 0
0 0 0 0 0
μμ μΆλ ₯ 4 볡μ¬
14
μμ μ λ ₯ 5 볡μ¬
2 2
1 -1
-1 1
μμ μΆλ ₯ 5 볡μ¬
0
# νμ΄ λ°©λ²
μ΅μ μΌμλ₯Ό ꡬνλ€ = λ€μ λ§ν΄ κ·Έλνμ κΉμ΄λ₯Ό ꡬνλ κ²
bfsλ‘ μ κ·ΌνκΈ°λ‘ λ€μ§νλ€.
κ·Έλνμ κΉμ΄λ₯Ό ꡬν λλ cnt λ³μλ₯Ό μ¨μ +1μ νλ κ²μ μ΄μ μ νκΈ° λλ¬Έμ ꡬνμμ ν° μ΄λ €μμ μμλ€
all() ν¨μλ₯Ό μ μν΄μ νΉμ μκ°μ΄κ³Όκ° λμ§ μμκΉ κ±±μ νλλ° λ€νν ν΅κ³Όλμλ€.
# μ½λ
# 2025-04-19 00:22-50
import sys
from collections import deque
sys.stdin = open("input.txt","r")
M, N = map(int, sys.stdin.readline().split())
graph = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]
queue = deque()
for i in range(N):
for j in range(M):
if graph[i][j] == 1:
queue.append((i,j,0))
# μνμ’μ°
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
def all():
for i in range(N):
for j in range(M):
if graph[i][j] == 0:
return False
return True
def bfs():
cnt = 0
while queue:
x, y, cnt = queue.popleft()
for i in range(4):
nx, ny = x + dx[i], y + dy[i]
if 0 <= nx < N and 0 <= ny < M:
if graph[nx][ny] == 0:
graph[nx][ny] = 1
queue.append((nx,ny,cnt+1))
return cnt
if all(): print(0) # μ μ₯λ λλΆν° λͺ¨λ ν λ§ν κ° μ΅μ΄μλ μν
else:
cnt = bfs()
if all(): print(cnt) # ν λ§ν κ° λͺ¨λ μ΅μ λκΉμ§μ μ΅μ λ μ§λ₯Ό μΆλ ₯
else: print(-1) # ν λ§ν κ° λͺ¨λ μ΅μ§λ λͺ»νλ μν©
# μ°Έκ³ (λ°νμ μ€λ₯ ν΄κ²°)
λ°νμ μλ¬ (UnboundLocalError)κ° λ΄λ€.
κ·Έ μ΄μ λ, while queue 루νκ° λ¨ ν λ²λ μ€νλμ§ μμΌλ©΄, cntλ μ μλμ§ μμ μ±λ‘ return cntκ° λκΈ° λλ¬Έμ΄λ€.
λ°λΌμ cntλ₯Ό ν¨μ μμμ κΈ°λ³Έκ°μΌλ‘ μ΄κΈ°νν΄μ€μΌ νλ€.
# 2025-04-19 00:22-
import sys
from collections import deque
# sys.stdin = open("input.txt","r")
M, N = map(int, sys.stdin.readline().split())
graph = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]
queue = deque()
for i in range(N):
for j in range(M):
if graph[i][j] == 1:
queue.append((i,j,0))
# μνμ’μ°
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
def all():
for i in range(N):
for j in range(M):
if graph[i][j] == 0:
return False
return True
def bfs():
while queue:
x, y, cnt = queue.popleft()
for i in range(4):
nx, ny = x + dx[i], y + dy[i]
if 0 <= nx < N and 0 <= ny < M:
if graph[nx][ny] == 0:
graph[nx][ny] = 1
queue.append((nx,ny,cnt+1))
return cnt
if all(): print(0)
else:
cnt = bfs()
if all(): print(cnt)
else: print(-1)
'π Study > Baekjoon' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Silver I] 1389 - μΌλΉ λ² μ΄μ»¨μ 6λ¨κ³ λ²μΉ (0) | 2025.04.19 |
---|---|
[Silver III] 2606 - λ°μ΄λ¬μ€ (0) | 2025.04.19 |
[Silver II] 10971 - μΈνμ μν2 (0) | 2025.04.16 |
[Gold IV] 3055 - νμΆ (0) | 2025.04.15 |
[Gold IV] 1987 - μνλ²³ (0) | 2025.04.14 |