에브리 저장소

[Codewars - 7 kyu] Ones and Zeros 본문

자료구조 · 알고리즘

[Codewars - 7 kyu] Ones and Zeros

eblee 2020. 1. 17. 14:36

문제 링크

 

이 문제는 배열로 표현된 2진수를 10진수로 변환하는 문제입니다.

 

Testing: [0, 0, 0, 1] ==> 1
Testing: [0, 0, 1, 0] ==> 2
Testing: [0, 1, 0, 1] ==> 5
Testing: [1, 0, 0, 1] ==> 9
Testing: [0, 0, 1, 0] ==> 2
Testing: [0, 1, 1, 0] ==> 6
Testing: [1, 1, 1, 1] ==> 15
Testing: [1, 0, 1, 1] ==> 11

 

문자열 이진수를 십진수로 변환하는 방법

 

자바스크립트에는 문자열을 숫자로 바꿔주는 메서드인 parseInt가 존재합니다. parseInt에 인자로 숫자로 변환할 문자열과 radix를 적어, 몇 진수로 표현되어 있는지 알려주면 변환하여 정수로 반환해 줍니다.

 

parseInt(string, radix);

 

radix는 2와 36 사이의 진수(수의 진법 체계에 기준이 되는 값)입니다.

 

이를 활용하여 간단하게 문제를 풀 수 있습니다.

해답 코드를 확인하려면 더보기를 눌러주세요.

더보기
const binaryArrayToNumber = arr => parseInt(arr.reduce((acc, cur) => acc + cur, ''), 2);

저는 reduce를 사용하여 배열의 인자를 문자열로 합쳐주었는데, 간단하게 join('')을 사용하면 동일하게 해결 가능합니다.

const binaryArrayToNumber = arr => parseInt(arr.join(''), 2);

 

참고

Comments