Back to all posts
[1차] 비밀지도
Written by ppotatoG & Posted on November 18th, 2021
처음 제출한 답
arr1
를 array
에 깊은복사
받아온 각 배열의 값을 2진수로 변환
변환한 값을 숫자로 바꿔준 후 더하고 +''
로 다시 문자열로 변환
array[i].length
이 n
과 다르다면, 부족한 자릿수만큼 0 추가
array
의 값들을 이미 문자열로 넘겼는데 왜 또 map
안에서 문자열로 넘긴거지..
여튼 값들이 0이면 ' ', 아니면 '#'으로 바꾼 후 합쳐주기
function solution(n, arr1, arr2) {let array = [...arr1];for(let i = 0; i < arr1.length; i++){let binary1 = arr1[i].toString(2);let binary2 = arr2[i].toString(2);array[i] = (Number(binary1) + Number(binary2) + '');if(array[i].length !== n){array[i] = ('0').repeat(n - array[i].length) + array[i];}}return array.map((val) => (val + '').split('').map((val2) => {return val2 === '0' ? val2 = ' ' : val2 = '#';}).join(''));}
다른 답
arr1
을 돌며,
각 배열의 값을 이진수로 변환 후 숫자열로 변환 한 값을 value
에 담아주기
value
를 반환하며, 문자열로 바꿔준 후 padStart로 값 앞에 부족한 0 채워주기
replace로 1, 2는 #으로 0은 ' '로 변환
function solution(n, arr1, arr2) {return arr1.map((val, idx) => {let value = Number(val.toString(2)) + Number(arr2[idx].toString(2));return value.toString().padStart(n, 0).replace(/1|2/g, '#').replace(/0/g, ' ');})}