백준 16953번 Node.js 풀이

버건디·2024년 1월 15일
0

백준

목록 보기
63/75
post-thumbnail

문제 링크


- 내 풀이

const fs = require("fs");
const input = fs
  .readFileSync("/dev/stdin")
  .toString()
  .trim()
  .split(" ")
  .map(Number);

let [A, B] = input;

let answer = 0;

while (true) {
  if (A > B) {
    console.log(-1);
    return;
  }

  const splitedB = B.toString().split("");

  if (splitedB[splitedB.length - 1] === "1") {
    splitedB.pop();

    B = Number(splitedB.join(""));

    answer++;
  } else {
    B = Number(B) / 2;

    answer++;
  }

  if (A === B) {
    console.log(answer + 1);
    return;
  }
}

일단 A 가 B보다 커졌다면, 계속 나눔, 1빼기 연산을 수행해주었음에도 불구하고 정답이 도출이 안됐다는 뜻이므로 -1을 출력해준다.

그리고 문자열로 바꾸어줘서 맨마지막 문자열이 "1"이라면 1을 없애주고, 그게 아니라면 2로 나누어준다.

profile
https://brgndy.me/ 로 옮기는 중입니다 :)

0개의 댓글