소스 코드

import sys
from collections import deque

a,b = map(int,sys.stdin.readline().split())

# append, pop 쓸때는 deque가 []보다 빨라서 deque 사용
temp = deque([a,1])
ans = 1
while len(temp):
    num = temp.popleft()
    cnt = temp.popleft()

    if num*2 < b:
        temp.append(num*2)
        temp.append(cnt+1)
    elif num*2 == b:
        ans = cnt + 1
        break

    if int(str(num) + '1') < b:
        temp.append(int(str(num) + '1'))
        temp.append(cnt+1)
    elif int(str(num) + '1') == b:
        ans = cnt + 1
        break

if ans == 1:
    print(-1)
else:
    print(ans)

 


해결 방법

1. bfs + deque 사용해서 시간 단축


느낀 점

 

 

ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.

 

오류적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.

 

혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.