λ¬Έμ π΅π«
μλΉμ΄λ λμκ³Ό μ¨λ°κΌμ§μ νκ³ μλ€. μλΉμ΄λ νμ¬ μ Nμ μκ³ λμμ μ Kμ μλ€. μλΉμ΄λ κ±·κ±°λ μκ°μ΄λμ ν μ μλ€. λ§μ½, μλΉμ΄μ μμΉκ° XμΌ λ κ±·λλ€λ©΄ 1μ΄ νμ X-1 λλ X+1λ‘ μ΄λνκ² λλ€, μκ°μ΄λμ νλ κ²½μ°μλ 1μ΄ νμ 2 * Xμ μμΉλ‘ μ΄λνκ² λλ€
μλΉμ΄μ λμμ μμΉκ° μ£Όμ΄μ‘μ λ, μλΉμ΄κ° λμμ μ°Ύμ μ μλ κ°μ₯ λΉ λ₯Έ μκ°μ΄ λͺ μ΄ νμΈμ§ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯!
첫 λ²μ§Έ μ€μ μλΉμ΄κ° μλ μμΉ Nκ³Ό λμμ΄ μλ μμΉ Kκ° μ£Όμ΄μ§λ€. Nκ³Ό Kλ μ μμ΄λ€.
μΆλ ₯!
μλΉμ΄κ° λμμ μ°Ύλ κ°μ₯ λΉ λ₯Έ μκ°μ μΆλ ₯νλ€.4
λ΄ νπ¦·
# 1697. μ¨λ°κΌμ§
from collections import deque
def bfs(start, depth):
visited = [0] * 100001
q = deque()
q.append((start, depth))
visited[start] = 1
while q:
s, d = q.popleft()
if s == K:
return d
for nxt_s in [s-1, s+1, s*2]:
if 0 <= nxt_s <= 100000 and (not visited[nxt_s] or visited[nxt_s] > d+1):
q.append((nxt_s, d+1))
visited[nxt_s] = d+1
N, K = map(int, input().split())
visited = [0] * K
result = dfs(N, 0)
print(result)
μ²μμ λλμ²΄κ° μ΄λ»κ² μ κ·Όν΄μΌν μ§λ λͺ¨λ₯΄κ² κ³ dpλ whileλ¬ΈμΌλ‘ νμ΄μΌκ² λ€ μΆμλλ° μκ³ λ³΄λ bfs λ¬Έμ μλ€γ γ
μμμ κ³Ό κΉμ΄λ₯Ό λ£μ΄μ μμμ μ΄ λμ κ³Ό κ°μμ§λ©΄ returnμΌλ‘ κΉμ΄λ₯Ό λ°μμ£Όλ©΄ μ΅μκ°μ ꡬν μ μλ€!!
μ΄λ €μ λ λΆλΆμ λ°©λ¬Έ νλ κ³³ λλ κΉμ΄κ° λ κΉμκ³³κ³Ό κ·Έμ κΉμ§μ κΉμ΄μ ν΄λΉνλ κ°μ΄ κ°μμλλ λ°°μ ν΄ μ£Όμ΄μΌ νλ€λ κ²μ΄μλ€... λ€λ₯Έ λΆλ€ μ½λλ₯Ό 보μμλλ μ΄λ―Έ λ°©λ¬Ένκ³³μ continueλ‘ λ겨μ κ°λ¨ν ν΄κ²°ν΄ μ£Όλκ²μ λ³Ό μ μμλ€...μ΄λ»κ² νμ΄μΌν μ§κΉμ§ κ³ λ―Όν λ¬Έμ λ μ€λλ§μ΄λΌ λμ± νλ€μλ€ ππππ
'algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ°±μ€ 1644. μμμ μ°μν©(ν¬ ν¬μΈν°, μμ ꡬνκΈ°) (2) | 2023.10.25 |
---|---|
λ°±μ€ 6603. λ‘λ(λ°±νΈλνΉ) (0) | 2023.09.29 |
μμ΄κ³Ό μ‘°ν©πͺ (0) | 2023.09.20 |
λ°±μ€ 11651. μ’ν μ λ ¬νκΈ°2 (sort & lambda) (0) | 2023.08.30 |
λ°±μ€ 1193. λΆμ μ°ΎκΈ° (1) | 2023.08.28 |