코드
function solution(n, arr1, arr2) {
let binaryArr1 = [];
let binaryArr2 = [];
let sumBinaryArr = [];
for (let i = 0; i < arr1.length; i++) {
binaryArr1.push(arr1[i].toString(2));
binaryArr2.push(arr2[i].toString(2));
sumBinaryArr.push(
(parseInt(binaryArr1[i]) + parseInt(binaryArr2[i]))
.toString()
.split("")
.map((ele) => (parseInt(ele) > 0 ? "#" : " "))
.join("")
.padStart(n)
);
}
return sumBinaryArr;
}
더 좋은 코드
var solution2 = (n, arr1, arr2) =>
arr1.map((a, i) =>
(a | arr2[i]).toString(2).padStart(n, 0).replace(/0/g, " ").replace(/1/g, "#")
);
두개의 배열을 비교하기위해
map의 인자로 index인 i를 만들어서
a와 arr2[i]로 같은 인덱스의 요소를 비교했다
| 는 or로써
a와 arr2[i]를 2진법으로 보았을때 or이다
즉 a가 50 b가 10이라면
각각 2진법으로 표현시
a는 110010
b는 001010이 되므로
a | b는 111010이된다
그리고 정규식 잘 활용하자
'코딩 테스트 > 프로그래머스 level1' 카테고리의 다른 글
문자열 내 마음대로 정렬하기 (0) | 2022.09.08 |
---|---|
모의고사 (0) | 2022.09.08 |
다트 게임 (0) | 2022.09.08 |
크레인 인형뽑기 게임 (0) | 2022.09.08 |
성격 유형 검사하기 (0) | 2022.09.08 |