[백준 16953번] A -> B

박형진·2023년 1월 19일
0

https://www.acmicpc.net/problem/16953


1. 코드

import sys

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

while b:
    if b == a:
        print(cnt+1)
        break

    if b % 2 == 0:
        b //= 2
        cnt += 1
    # '1'이 들어올 경우 예외 터지므로 len()을 통해 걸러줌
    elif len(str(b)) >= 2 and str(b)[-1] == '1':
        b = int(str(b)[:-1])
        cnt += 1
    else:
        print(-1)
        break

2. 후기

B가 짝수라면 2로 나눠준다. 또는 끝이 1이라면 1을 제거해준다.
두 조건 모두 해당 안되면 A를 만들 수 없으므로 -1을 출력한다.

profile
안녕하세요!

0개의 댓글