๐Ÿค–/๋ฐฑ์ค€

๋ฐฑ์ค€ 1697: ์ˆจ๋ฐ”๊ผญ์งˆ (Python)

sssbin 2022. 2. 2. 15:58

 

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 ๋ฌธ์ œ์ธ์ง€๋„ ๋ชฐ๋ž์„ ๊ฒƒ ๊ฐ™๋‹ค···