[Lv.0] 이진수 더하기

01수정·2023년 10월 25일
0
post-thumbnail

<입문 100문제> Day 24 - 수학, 시뮬레이션, 문자열, 조건문, 반복문

문제



풀이

function solution(bin1, bin2) {
    // 2진수 -> 10진수 : parseInt
    // 10진수 -> 2진수 : toString
    return (parseInt(bin1, 2) + parseInt(bin2, 2)).toString(2);    
}

해답

  • 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();
}
profile
새싹 FE 개발자

0개의 댓글