Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

개발하지연

[백준 16953번] A -> B (python) 본문

알고리즘

[백준 16953번] A -> B (python)

JeongJiyeon 2021. 7. 16. 16:37

문제

정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다.

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

A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자.

 

기록

(greedy 6일차) B -> A로 거꾸로 만들어가는 과정을 구현했다.

 

코드

A, B = map(int, input().split())

count=0
while B>A:
    count+=1
    if B%10==1: B//=10
    elif B%2==0 : B//=2
    else : break

if A==B : print(count+1)
else : print(-1)

B를 A로 만드는 과정을 구현했다. 2로 나눠지는 경우는 2로 나누고, 마지막이 1인 경우는 1을 제거하는 과정을 A를 만들 때까지 반복한다.

Comments