[프로그래머스/js] 이진수 더하기, (js 진수 간단한 변환)

이다형·2023년 7월 14일
0

문제 설명

이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요.

나의 풀이

function solution(bin1, bin2) {
    return (parseInt(bin1,2) + parseInt(bin2,2)).toString(2)
}

js에서는 toString 과 parseInt로 진수 변환을 아주 간단하게 할수 있다...!

  • 10진수 number를 n진수로 변환 : number.toString( n)
  • n진수 number 10진수로 변환 : parseInt(number, n)

다른 풀이

function solution(bin1, bin2) {
  let temp = Number(bin1) + Number(bin2);
  temp = [...temp.toString()].reverse().map((v) => +v);

  for (let i = temp.length; i < 11; i++) {
    temp.push(0);
  }

  for (let i = 0; i < temp.length; i++) {
    if (temp[i] === 2) {
      temp[i] = 0;
      temp[i + 1]++;
    } else if (temp[i] === 3) {
      temp[i] = 1;
      temp[i + 1]++;
    }
  }
  return Number(temp.reverse().join("")).toString();
}

(프로그래머스 박상훈 님의 풀이, 문제시 내리겠습니다.)

toString과 parseInt로 진수 변환하는것을 몰랐다면...
위와 같이구현할 수 있다.

메소드를 사용하는 것 보다 직접 로직을 구현하는것이 문제 해결능력을 더 향상 시킬 수 있을 것 같다.

0개의 댓글