이진수 더하기

문제 설명

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


제한사항

  • return 값은 이진수를 의미하는 문자열입니다.

  • 1 ≤ bin1, bin2의 길이 ≤ 10

  • bin1bin2는 0과 1로만 이루어져 있습니다.

  • bin1bin2는 "0"을 제외하고 0으로 시작하지 않습니다.


입출력 예

bin1bin2result

"10"

"11"

"101"

"1001"

"1111"

"11000"


입출력 예 설명

입출력 예 #1

  • 10 + 11 = 101 이므로 "101" 을 return합니다.

입출력 예 #2

  • 1001 + 1111 = 11000 이므로 "11000"을 return합니다.

코드

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

다른 풀이

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();
}

2진수를 직접 푸는 방법

Last updated