백준 2089 -2진수 (수학)

bkboy·2022년 6월 15일
0

백준 초급

목록 보기
71/80

문제

풀이

const input = require('fs').readFileSync('/dev/stdin').toString().trim();
const sol = (N) => {
  if(N == 0){
      return 0;
  }  
  let answer = [];
  while (N != 0) {
    if (N % -2 == 0) {
      // 음수, 짝수인 경우
      answer.unshift(0);
      N /= -2;
    } else {
      //  양수, 홀수인 경우
      answer.unshift(1);
      N = (N - 1) / -2;
    }
  }
  return answer.join("");
};

console.log(sol(input));

-2로 나눴을 때 나머지가 없다면 0을 추가
나머지가 있다면 1을 추가한다.

홀수의 경우 -2로 나누는 과정에서 항상 내림을 취해야하기 때문에 -1을 진행하고 2로 나눠 준 것이다.

profile
음악하는 개발자

0개의 댓글