백준

[백준 16953] A → B

mark340 2023. 1. 24. 14:04

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

 

16953번: A → B

첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다.

www.acmicpc.net

 

  • B에서 A로 찾아나가는 식으로 해결하면 간단하다

 

let [A,B] = require('fs').readFileSync('/dev/stdin').toString().trim().split(' ').map(Number)
let cnt = 1;  // 연산횟수 카운트 (문제내용상 1부터 카운트)

while(A<B){  //  B값에서 A값 찾아나가기
  if(B%2 == 1){  // B값이 1로 끝나는 경우
    B = (B-1)/10   // 1을 뺀값에 뒷자리 0 빼기
    cnt++    // 연산횟수 1++
  } else {
    B = B/2  // B값이 1로 끝나지 않을 경우엔 2로 나누기
    cnt ++  // 연산횟수 ++
  }
  if(B<A){   // 만들 수 없는 경우
    cnt = -1  // 연산횟수를 -1 로..
  }
}

console.log(cnt);  // 연산횟수 출력