본문 바로가기

Algorithm/Javascript로 코테 준비하기

[JS로 코테 준비하기] 10. 프로그래머스 - 이진수 더하기 (feat. 2진수 <-> 10진수)

반응형

https://school.programmers.co.kr/learn/courses/30/lessons/120885

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

그동안 parseInt는 정수로의 변환을 위해, toString은 문자열로의 변환을 위해서만 사용했던 것이 대부분이었다. 하지만 이 문제를 통해 위 메서드들의 새로운 면을 알게 되었다.

 

1. parseInt()

  • 정수를 반환 ← 주로 사용하던 기능
  • 문자열을 파싱 하여 특정 진수의 정수를 반환 (= 특정 진수를 10진수로)
const str = "10";
console.log(parseInt(str)); //10 (str을 정수로)
console.log(parseInt(str, 2)); //2 (2진수인 str을 10진수로)

 

cf) 문자열이 진법 체계에 맞지 않는 경우

  • parseInt("23", 2)에서, 문자열 "23"은 이진수가 아니므로 NaN을 반환

 

 

2. toString()

  • 문자열을 반환 ← 주로 사용하던 기능
  • 숫자의 경우 선택적으로 기수(2~36)를 매개변수로 취하며, 이를 통해 10진수를 특정 진수로 변환한 값 반환
const num = 10;
console.log(num.toString()); //"10" (num을 문자열로)
console.log(num.toString(2)); //"1010" (num을 2진수로)

 

 

3. 소스 코드

  • 2진수 → 10진수: parseInt 사용
  • 10진수 → 2진수: toString 사용
function solution(bin1, bin2) {
    return (parseInt(bin1, 2) + parseInt(bin2, 2)).toString(2);
}

 

 

Reference

반응형