A, B = map(int, input().split())
count = 0
while True:
if len(str(B)) > len(str(A)):
if B % 10 == 1:
B //= 10
count += 1
continue
if B > A and B % 2 == 0:
B //= 2
count += 1
elif B == A:
print(count+1)
break
else:
print(-1)
break
from collections import deque
A, B = map(int, input().split())
q = deque()
q.append(A, 1)
while q:
cur, count = q.popleft()
if cur > B:
continue
elif cur == B:
print(count)
break
q.append(int(str(cur)+"1"), count+1)
q.append(cur*2, count+1)
else:
print(-1)
bfs 로 접근하는 방법이 매우 신선했다. 무수히 커질 것 같아서 A 에서 시작해보지 않았는데 값이 커질때 pop
하면서 continue
조건을 주는 것이 신박했다.