๐ซcode )
from collections import deque
# ๋๋น ์ฐ์ ํ์
n, k = map(int, input().split(' '))
arr = [0] * (k + 1)
max_v = 100001
visit = [0] * max_v
q = deque([n])
da = [-1, 1, 2]
while q:
a = q.popleft()
if a == k:
print(visit[a])
break
for i in range(3):
if i == 2:
na = a * da[i]
else:
na = a + da[i]
# a๊ฐ ๊ธฐ์กด, na๋ ๋ค์ ๋์์์ ๋ ๋น๊ต
if (0 <= na < max_v) and (visit[na] == 0 or visit[a] + 1 < visit[na]):
visit[na] = visit[a] + 1 # ์นด์ดํธ ํด์ค(๊ฐฑ์ )
q.append(na)
๐ description )
๋ฌธ์ ์ถ์ฒ : www.acmicpc.net/problem/1697
๋ฌธ์ ์๋น์ด๋ ๋์๊ณผ ์จ๋ฐ๊ผญ์ง์ ํ๊ณ ์๋ค. ์๋น์ด๋ ํ์ฌ ์ N(0 ≤ N ≤ 100,000)์ ์๊ณ , ๋์์ ์ K(0 ≤ K ≤ 100,000)์ ์๋ค. ์๋น์ด๋ ๊ฑท๊ฑฐ๋ ์๊ฐ์ด๋์ ํ ์ ์๋ค. ๋ง์ฝ, ์๋น์ด์ ์์น๊ฐ X์ผ ๋ ๊ฑท๋๋ค๋ฉด 1์ด ํ์ X-1 ๋๋ X+1๋ก ์ด๋ํ๊ฒ ๋๋ค. ์๊ฐ์ด๋์ ํ๋ ๊ฒฝ์ฐ์๋ 1์ด ํ์ 2*X์ ์์น๋ก ์ด๋ํ๊ฒ ๋๋ค. ์๋น์ด์ ๋์์ ์์น๊ฐ ์ฃผ์ด์ก์ ๋, ์๋น์ด๊ฐ ๋์์ ์ฐพ์ ์ ์๋ ๊ฐ์ฅ ๋น ๋ฅธ ์๊ฐ์ด ๋ช ์ด ํ์ธ์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ์ฒซ ๋ฒ์งธ ์ค์ ์๋น์ด๊ฐ ์๋ ์์น N๊ณผ ๋์์ด ์๋ ์์น K๊ฐ ์ฃผ์ด์ง๋ค. N๊ณผ K๋ ์ ์์ด๋ค. ์ถ๋ ฅ์๋น์ด๊ฐ ๋์์ ์ฐพ๋ ๊ฐ์ฅ ๋น ๋ฅธ ์๊ฐ์ ์ถ๋ ฅํ๋ค. |
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] ์๊ณ ์คํ / 1261๋ฒ / ํ์ด์ฌ / Python / Dijkstra ์๊ณ ๋ฆฌ์ฆ (0) | 2020.12.06 |
---|---|
[๋ฐฑ์ค] ์ต์๋น์ฉ ๊ตฌํ๊ธฐ / 1916๋ฒ / ํ์ด์ฌ / python (0) | 2020.12.05 |
[๋ฐฑ์ค] 1๋ก ๋ง๋ค๊ธฐ / 1463๋ฒ / ํ์ด์ฌ / Python (0) | 2020.12.03 |
[๋ฐฑ์ค] ํจ์จ์ ์ธ ํดํน / 1325๋ฒ / ํ์ด์ฌ / Python (0) | 2020.12.01 |
[๋ฐฑ์ค] ์ฐจ์ด๋ฅผ ์ต๋๋ก / 10819๋ฒ / ํ์ด์ฌ / Python (0) | 2020.11.30 |