연습장/프로그래머스 문제풀이
[프로그래머스 Level 1] [1차] 비밀지도 - JavaScript
Tesseractjh
2022. 5. 6. 00:31
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/17681
코딩테스트 연습 - [1차] 비밀지도
비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다
programmers.co.kr
풀이
function solution(n, arr1, arr2) {
return [...Array(n)].map((_, i) =>
[...(arr1[i] | arr2[i])
.toString(2)
.padStart(n, ' ')]
.map(v => +v ? '#' : ' ')
.join('')
);
}
비트마스킹을 이용하여 겹쳐진 두 지도를 논리합 연산(|)으로 구하고,
이렇게 구한 지도를 2진수 문자열로 변경하여 0은 빈 문자열, 1은 #으로 바꿔서 해결하였다.
10진수 수를 2진수 문자열로 변환할 때, 자리수에 상관없이 앞에 0은 모두 생략이 되므로,
String.prototype.padStart를 활용하여 0이 생략되어 빈 부분을 빈 문자열로 메꾸었다.