문제출처 : https://www.acmicpc.net/problem/16953
1. target이 홀수 일때와 짝수 일때로 나누었다.
1-1 짝수일 경우 target/2를 한다.
1-2 홀수일 경우 일의 자리가 1이 아닌경우 만들수 없는 수 이므로 return -1
1-3 그 이외의 경우에는 일의 자리를 떼고 다시 처음의 과정을 수행한다.
2. while 문이 break 되는 조건을 다음과 같다.
2-1 start가 target과 같아진 경우 return cnt
2-2 start가 target보다 커져서 만들수 없는 경우 return -1
import sys
input = sys.stdin.readline
start,target = map(int,input().split())
cnt = 1
while True:
if start == target:
break
elif start > target or (target % 2 !=0 and target % 10 != 1):
cnt = -1
break
elif target % 2 == 0:
target = int(target/2)
cnt += 1
else:
target = target // 10
cnt += 1
print(cnt)