문제 정의
2진수(binary) 코드가 담긴 문자열을 입력받아, 원래의 알파벳 텍스트 형태로 변환하여 반환하는 자바스크립트 함수를 작성해야 합니다.
예를 들어, 아래와 같은 2진수 입력 문자열이 있다고 가정해 보겠습니다 −
const str = '1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100';
그렇다면 함수는 다음과 같은 결과를 반환해야 합니다 −
const output = 'Hello World';
해결 접근 방식
이 문제는 split(), parseInt(), String.fromCharCode() 세 가지 기본 메서드만 활용하면 간단하게 해결할 수 있습니다. 처리 과정은 다음과 같습니다.
먼저 split(' ')을 사용해 공백을 기준으로 문자열을 나누어 각 2진수 단위로 분리합니다. 그다음 parseInt(part, 2)를 통해 각 2진수 조각을 10진수 숫자로 변환하고, String.fromCharCode()로 해당 숫자에 대응하는 문자로 바꿔줍니다. 마지막으로 join('')을 사용해 모든 문자를 하나의 완성된 문자열로 결합하면 됩니다.
예제 코드
실제 구현 코드는 다음과 같습니다 −
const str = '1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100';
const binaryToString = (binary = '') => {
let strArr = binary.split(' ');
const str = strArr.map(part => {
return String.fromCharCode(parseInt(part, 2));
}).join('');
return str;
};
console.log(binaryToString(str));출력 결과
위 코드를 실행하면 콘솔에 다음과 같이 출력됩니다 −
Hello World