
과정
- 목적 B부터 시작.
- B가 2로 나누어떨어지면 B = B//2
- B를 10으로 나누었을때 나머지가 1이면 (마지막 숫자가 1) 맨 뒤 숫자 떼기
- 함수 중지 조건
- B가 A 보다 작아지면 -1 출력
- B가 2로 나누어떨어지지 않거나, 10으로 나눈 나머지가 1이 아니면 -1 출력
- A == B면 실행 횟수 +1 출력
A, B = map(int, input().split())
ans = 0
def main(A, B):
global ans
if A == B:
return
elif B == 1:
ans = -1
return
elif B % 2 == 0:
B = B // 2
ans += 1
main(A, B)
elif B % 10 == 1:
B = B // 10
ans += 1
main(A, B)
else:
ans = -1
return
main(A, B)
if ans == -1:
print(ans)
else:
print(ans + 1)
- 함수를 재귀적으로 실행하는 방법 사용.
- while문으로 정지 조건을 만족하지 않으면 계속 반복하는 방식이 좋을 것 같다.