이진수 더하기

도비김·2024년 2월 29일
0

Programmers | lv.0 입문

목록 보기
72/101
문제 설명

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


제한사항
  • return 값은 이진수를 의미하는 문자열입니다.
  • 1 ≤ bin1, bin2의 길이 ≤ 10
  • bin1bin2는 0과 1로만 이루어져 있습니다.
  • bin1bin2는 "0"을 제외하고 0으로 시작하지 않습니다.

입출력 예
bin1 bin2 result
"10" "11" "101"
"1001" "1111" "11000"

입출력 예 설명

입출력 예 #1

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

입출력 예 #2

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

solution

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

toString()은 10진수에서 다른 진수로, Number => String 형변환
parseInt(a,x)는 다른진수에서 10진수로, String => Number 형변환

다른풀이

function solution(bin1, bin2) {
  let temp = [... ((+bin1 + +bin2).toStirng())].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();
}
profile
To Infinity, and Beyond!

0개의 댓글