[BOJ] 13549.μ¨λ°κΌμ§ 3 (Python)
by λλΆλ
μ΄ λ¬Έμ λ μλΉμ΄κ° λμμ μ°Ύμ μ μλ κ°μ₯ λΉ λ₯Έ μκ°μ΄ λͺ μ΄μΈμ§ ꡬνλ λ¬Έμ μ λλ€.
μλΉμ΄μ μμ μμΉλ N, λμ μμΉλ K, μλΉμ΄κ° μ΄λν μμΉλ Xλ‘ μ£Όμ΄μ§λλ€.
μλΉμ΄κ° κ±·λλ€λ©΄ 1μ΄ ν X-1 λλ X+1μ μμΉλ‘ μ΄λν©λλ€.
μλΉμ΄κ° μκ°μ΄λνλ€λ©΄ 0μ΄ ν X*2μ μμΉλ‘ μ΄λν©λλ€.
μλΉμ΄μ λμμ΄ μ‘΄μ¬ν μ μλ μ΅λ μμΉλ 100000μ΄λ―λ‘ κ·Έκ²μ 1μ λν΄ limitλ‘ μ§μ ν©λλ€.
μ΄ limitλ μλΉμ΄μ λ€μ μ΄λ μμΉλ₯Ό μ ννλ μ©λλ‘ μ¬μ©λ©λλ€.
μλΉμ΄μ μ΄λμκ°μ κ΄λ¦¬νκΈ° μν΄ time 리μ€νΈλ₯Ό μμ±ν©λλ€.
μ΄ λ, λ°©λ¬Ένμ§ μμ Xμ μ λν΄ νμΈνκΈ° μν΄ -1λ‘ μ΄κΈ°νν©λλ€.
λμμ μμΉλ‘ κ° λ μκ°μ΄λμ΄ κ°μ₯ κ°κΉμ΄ λ€κ°κ° μ μμΌλ―λ‘ λ¨Όμ μνλμ΄μΌ ν©λλ€.
κ·Έλ¬λ―λ‘ dequeμ 맨 μ²μ μμΉλ‘ λ£μ΄μ£Όλ©° μ§ννλλ‘ μ‘°μ ν©λλ€.
μ΄μ κ°μ λ°©μμΌλ‘ λ¬Έμ λ₯Ό νλ©΄ λ€μκ³Ό κ°μ΅λλ€.
# μ¨λ°κΌμ§ 3
from collections import deque
def solution(N, K) :
limit = 100001 # μ΅λλ‘ μ£Όμ΄μ§λ μ + 1
time = [-1] * limit # μκ° μ μ₯μ μν 리μ€νΈ
time[N] = 0
d = [2, -1, 1]
q = deque()
q.append(N)
while q :
X = q.popleft()
if X == K :
return time[X]
for i in range(3) :
if i == 0 : # μλΉμ΄κ° μκ°μ΄λνλ κ²½μ°
nx = X * d[i]
if 0 < nx < limit and time[nx] == -1:
time[nx] = time[X]
q.appendleft(nx)
else : # μλΉμ΄κ° κ±·λ κ²½μ°
nx = X + d[i]
if 0 <= nx < limit and time[nx] == -1 :
time[nx] = time[X] + 1
q.append(nx)
if __name__=="__main__" :
N, K = map(int, input().split()) # μλΉμ΄ μμΉ, λμ μμΉ
print(solution(N, K))
'Algorithm > BOJ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ] 14890.κ²½μ¬λ‘ (Python) (0) | 2021.04.20 |
---|---|
[BOJ] 1929.μμꡬνκΈ° (Python) (0) | 2021.04.19 |
[BOJ] 12110.2048(Easy) (0) | 2021.04.19 |
[BOJ] 1918.νμνκΈ°μ (Python) (0) | 2021.04.17 |
[BOJ] 1105.ν (Python) (0) | 2021.04.16 |
λΈλ‘κ·Έμ μ 보
λλΆλμ Devlog
λλΆλ