[JS/백준]{그리디}(16953) A -> B
2022년 10월 03일
백준 문제 링크
문제 설명
풀이 방법은 간단하다 A -> B로 가는 것이 아닌 B -> A로 가는 것이다 ex) 162 -> 2
제일 먼데 마지막 숫자가 1인지 확인하고 1일 경우 1을 빼준다 1이 아니고 2로 나눠질 경우
2로 나눠준다 둘 다 해당하지 않으면 -1을 출력하고 종료한다
다 끝 마치고 나서 B가 A보다 작아지면 또한 -1을 출력한다.
코드
const line = require("fs").readFileSync("./input.txt", "utf8");
let inputData = line.trim();
let [a, b] = inputData.split(" ");
let cnt = 1;
while (+b > +a) {
if (b[b.length - 1] === "1") {
cnt += 1;
b = b.slice(0, b.length - 1);
} else if (+b % 2 === 0) {
cnt += 1;
b = String(parseInt(b / 2));
} else {
console.log(-1);
process.exit(0);
}
}
if (+b < +a) {
console.log(-1);
process.exit(0);
}
console.log(cnt);