https://www.acmicpc.net/problem/1697
1697๋ฒ: ์จ๋ฐ๊ผญ์ง
์๋น์ด๋ ๋์๊ณผ ์จ๋ฐ๊ผญ์ง์ ํ๊ณ ์๋ค. ์๋น์ด๋ ํ์ฌ ์ N(0 ≤ N ≤ 100,000)์ ์๊ณ , ๋์์ ์ K(0 ≤ K ≤ 100,000)์ ์๋ค. ์๋น์ด๋ ๊ฑท๊ฑฐ๋ ์๊ฐ์ด๋์ ํ ์ ์๋ค. ๋ง์ฝ, ์๋น์ด์ ์์น๊ฐ X์ผ
www.acmicpc.net
from collections import deque
MAX = 100000
n, k = map(int, input().split())
queue = deque()
queue.append(n)
visited = [0] * (MAX + 1)
while queue:
q = queue.popleft()
mv = [q + 1, q - 1, 2 * q]
if q == k:
print(visited[q])
break
for i in mv:
if 0 <= i <= MAX and visited[i] == 0:
visited[i] = visited[q] + 1
queue.append(i)
์ฒ์ ๋ดค์ ๋ ๋จธ๋ฆฌ๊ฐ ์ ์ ๋์๊ฐ๋ค
๊ทธ๋ฅ ๋ดค์ผ๋ฉด bfs ๋ฌธ์ ์ธ์ง๋ ๋ชฐ๋์ ๊ฒ ๊ฐ๋ค···
'๐ค > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 7564: ๋์ดํธ์ ์ด๋ (Python) (0) | 2022.02.03 |
---|---|
๋ฐฑ์ค 2606: ๋ฒฝ ๋ถ์๊ณ ์ด๋ํ๊ธฐ (Python) (0) | 2022.02.03 |
๋ฐฑ์ค 7569: ํ ๋งํ (Python) (0) | 2022.02.02 |
๋ฐฑ์ค 7576: ํ ๋งํ (Python) (0) | 2022.02.02 |
๋ฐฑ์ค 2178: ๋ฏธ๋ก ํ์ (Python) (0) | 2022.02.01 |