백준
[백준 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); // 연산횟수 출력