코딩/공부

[Python] 백준 16953번 - A → B

취미니스트 2024. 4. 26. 16:52
728x90
반응형

문제

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


두 정수 입력받아 저장.

횟수를 저장하기 위한 변수 생성(1로 초기화).

a, b = map(int, input().split())
count = 1

 

a와 b가 서로 다른 동안 반복.

- b의 1의자리 숫자가 1이면 10으로 나눈 몫을 저장하고(맨 뒤에 숫자 제거) 횟수 1 증가.

- b가 0이 아니고, 2의 배수라면 2로 나누고 횟수 1 증가.

- 둘 다 아니면 횟수를 -1로 저장하고 반복 종료(만들 수 없는 경우).

횟수 출력.

while a != b:
    if b % 10 == 1:
        b //= 10
        count += 1
    elif b != 0 and b % 2 == 0:
        b >>= 1
        count += 1
    else:
        count = -1
        break
print(count)

 

전체 코드.

a, b = map(int, input().split())
count = 1
while a != b:
    if b % 10 == 1:
        b //= 10
        count += 1
    elif b != 0 and b % 2 == 0:
        b >>= 1
        count += 1
    else:
        count = -1
        break
print(count)
728x90
반응형