[16953번] A -> B Python

HYEOB KIM·2023년 9월 4일
0

algorithm

목록 보기
40/44
post-custom-banner

16953번 A -> B

16953번 A -> B

코드

  • A에서 B로 가려 하지 말고, B에서 A가 되도록 생각해본다
  • B가 2로 나눠지면 2로 나눈다
  • B의 끝자리가 1이라는 것은 곧 1의 자리수가 1이라는 것을 의미하고 10으로 나눈 나머지가 1이라는 의미
  • B가 2로 나눠지지 않고 1의 자리수가 1도 아니라면 -1을 출력
  • 반복문이 돌다가 A와 B가 같아지면 while이 반복된 횟수 + 1을 출력
import sys
A, B = map(int, sys.stdin.readline().split(' '))
cnt = 1

while True:
    cnt += 1
    tmp = B
    if B % 2 == 0:
        B //= 2
    elif B % 10 == 1:
        B //= 10

    if tmp == B:
        print(-1)
        break
    elif A == B:
        print(cnt)
        break
profile
Devops Engineer
post-custom-banner

0개의 댓글