π 곡λΆνλ μ§μ§μνμΉ΄λ μ²μμ΄μ§?
[Programmers] κ²μ 맡 μ΅λ¨κ±°λ¦¬ λ³Έλ¬Έ
728x90
λ°μν
κ²μ 맡 μ΅λ¨κ±°λ¦¬
ROR κ²μμ λ νμΌλ‘ λλμ΄μ μ§ννλ©°, μλ ν μ§μμ λ¨Όμ νκ΄΄νλ©΄ μ΄κΈ°λ κ²μ
κ° νμ μλ ν μ§μμ μ΅λν 빨리 λμ°©νλ κ²μ΄ μ 리
κ²μμ λΆλΆμ λ²½μΌλ‘ λ§νμμ΄ κ° μ μλ κΈΈμ΄λ©°, ν°μ λΆλΆμ κ° μ μλ κΈΈ
μΊλ¦ν°κ° μμ§μΌ λλ λ, μ, λ¨, λΆ λ°©ν₯μΌλ‘ ν μΉΈμ© μ΄λνλ©°, κ²μ 맡μ λ²μ΄λ κΈΈμ κ° μ μμ
κ²μ 맡μ μν mapsκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, μΊλ¦ν°κ° μλ ν μ§μμ λμ°©νκΈ° μν΄μ
μ§λκ°μΌ νλ μΉΈμ κ°μμ μ΅μκ°μ return νλλ‘ solution ν¨μ
μλ ν μ§μμ λμ°©ν μ μμ λλ -1μ return
n x m ν¬κΈ°μ κ²μ 맡μ μν
0μ λ²½μ΄ μλ μ리, 1μ λ²½μ΄ μλ μ리
from collections import deque
def solution(maps):
queue = deque()
n = len(maps)
m = len(maps[0])
# μΊλ¦ν°λ κ²μ 맡μ μ’μΈ‘ μλ¨μΈ (1, 1)
# μλλ°© μ§μμ κ²μ 맡μ μ°μΈ‘ νλ¨μΈ (n, m)
dx = [-1, 0, 1, 0]
dy = [0, 1, 0, -1]
queue.append((0, 0))
answer = 0
while queue :
x, y = queue.popleft()
for i in range(4) :
nx = x + dx[i]
ny = y + dy[i]
if 0 <= nx < n and 0 <= ny < m and maps[nx][ny] == 1 :
maps[nx][ny] = maps[x][y] + 1
queue.append((nx, ny))
if maps[n-1][m-1] == 1 :
answer = -1
else :
answer = maps[n-1][m-1]
return answer
728x90
λ°μν
'π¦₯ μ½ν > Programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Programmers] μ£Όμκ°κ²© (1) | 2023.04.15 |
---|---|
[Programmers] λ€λ¦¬λ₯Ό μ§λλ νΈλ (0) | 2023.04.14 |
[Programmers] 곡μ μ°μ± (0) | 2023.04.14 |
[Programmers] κ³Όμ μ§ννκΈ° (0) | 2023.04.14 |
[Programmers] μΆμ΅ μ μ (0) | 2023.04.14 |
Comments