[JS/백준]{그리디}(16953) A -> B

202210월 03

백준 문제 링크

1

문제 설명

풀이 방법은 간단하다 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);