๋ฐฑ์ค€ 16953 ํŒŒ์ด์ฌ

2022. 1. 25. 22:28ใ†๐Ÿ”ฑ Algorithm/Else

https://www.acmicpc.net/problem/16953

 

16953๋ฒˆ: A → B

์ฒซ์งธ ์ค„์— A, B (1 ≤ A < B ≤ 109)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net

 

์ •๋‹ต ์ฝ”๋“œ

from collections import deque

a, target = map(int, input().split())
queue = deque()

queue.append((a * 2, 1))
queue.append((int(str(a) + '1'), 1))

while queue:
    num, count = queue.popleft()
    if num == target:
        print(count + 1)
        exit()
    elif num > target:
        continue
    else:
        queue.append((num * 2, count + 1))
        queue.append((int(str(num) + '1'), count + 1))
print(-1)

 

์œ ์˜ํ•  ์ ์€ ์ถœ๋ ฅ๊ฐ’์— 1์„ ๋”ํ•ด์•ผ ํ•œ๋‹ค. ๋ฌธ์ œ ์กฐ๊ฑด์—์„œ, ์—ฐ์‚ฐ์˜ ์ตœ์†Œ๊ฐ’์— 1์„ ๋”ํ•œ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋ผ๊ณ  ๋ช…์‹œ๋ผ ์žˆ๋‹ค.

 

๋‘๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์—ฐ์‚ฐ์„ ์ ์šฉํ•˜์—ฌ target ๋„˜๋ฒ„๋ฅผ ๋งž์ถœ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. target ๋„˜๋ฒ„๋ฅผ ๋งž์ถœ ๋•Œ๊นŒ์ง€ ๋ช‡๋ฒˆ์˜ ์—ฐ์‚ฐ์„ ๊ฑฐ์ณค๋Š”์ง€ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ์—ฐ์‚ฐ์˜ ํšŸ์ˆ˜๋ฅผ count ๋ผ ํ•˜๊ฒ ๋‹ค.