1. 2진수 <-> 10진수
2진수와 10진수를 왔다갔다하기 위해 toString()와 parseInt()를 사용했다. 위의 코딩테스트 문제를 푸는데에도 메소드를 이용해서 풀었는데 다른 사람들의풀이를 보니 하나하나 2진수를 구현했더라. 꽤나 인상적이였다.
// 테스트 케이스
const bin1 = "10"
const bin2 = "11"
function solution(bin1, bin2) {
let temp = Number(bin1) + Number(bin2); // 21
temp = [...temp.toString()].reverse().map((v) => +v); // [ 1, 2 ]
// ↑ reverse를 한 이유는 2진수로 변경해주기 위해 자리를 맞춰주기위함.(두번째 반복문을 위함)
// ↓ bin1, bin2 크기를 10이하로 조건이 있었고, 2진수를 변경하기 위해 나머지에 0을 채워준거임.
for (let i = temp.length; i < 11; i++) {
temp.push(0); // temp = [ 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
}
// ↓ 반복문을 진행시켜서 2진수로 변경하는 반복문
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();
}
2. 정규표현식과 템플릿 리터럴
// 정규표현식 템플릿 리터럴 사용을 이렇게 하면 되는군!
function solution(my_str, n) {
return my_str.match(new RegExp(`.{1,${n}}`, "g"));
}