A → B

면접 대비

시간 제한2초메모리 제한512 MB

요약
어떤 수에 2를 곱하거나 끝에 1을 붙이는 두 연산만으로 A를 B로 바꿀 때 필요한 최소 연산 횟수를 구하고, 불가능하면 -1을 출력한다.
난이도

보통10점 중 6점

유형
그리디, BFS, 수학, 구현
정답자
아직 제출이 없습니다

문제

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

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

A를 B로 바꾸는 데 필요한 연산 횟수의 최솟값을 구하시오.

입력

첫째 줄에 A와 B가 주어진다. (1 ≤ A < B ≤ 10^9)

출력

A를 B로 바꾸는 데 필요한 연산 횟수의 최솟값에 1을 더한 값을 출력한다. 만들 수 없는 경우에는 -1을 출력한다.

예제3

  1. 예제 1

    입력
    2 162
    
    예상 출력
    5
    
  2. 예제 2

    입력
    4 42
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    100 40021
    
    예상 출력
    5