16953 - A -> B

LeeKyoungChang·2022년 6월 8일
0

Algorithm

목록 보기
153/203
post-thumbnail

📚 16953 - A -> B

A->B

 

이해

A를 B로 바꾸면 되는 문제이다.

✔️ 규칙

  • 2을 곱한다.
  • 1을 수의 가장 오른쪽에 추가한다.

이와 같이 초기값을 결과값으로 바꿀 때는 반대로 진행하면 된다.
B → A를 만들 수 있는지 없는지 확인하면 된다.

  • 현재 b가 홀수이면 만들 수 없다.
  • 현재 b가 a보다 작다면 만들 수 없다.
  • 현재 b와 a가 같다면 종료한다.

 

소스

import sys  
  
read = sys.stdin.readline  
  
a, b = map(int, read().split())  
  
answer = 0  
  
while b > a:  
    answer += 1  
  
    if b % 10 == 1:  
        b = b // 10  
    elif b % 2 == 0:  
        b = b // 2  
    elif b % 2 == 1:  
        answer = -1  
        break  
  
    if b < a:  
        answer = -1  
        break  
    elif a == b:  
        break  
  
if answer == -1:  
    print(answer)  
else:  
    print(answer+1)
스크린샷 2022-06-08 오후 11 28 47

 

profile
"야, (오류 만났어?) 너두 (해결) 할 수 있어"

0개의 댓글