[JavaScript] [1차] 비밀지도
2022. 8. 2. 21:58ㆍAlgorithm/프로그래머스
level : 1
문제 링크 : [1차] 비밀지도
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
My Solution
function solution(n, arr1, arr2) {
let answer = [];
for(let i = 0; i < n; i++){
answer.push((arr1[i]|arr2[i]).toString(2).padStart(n,"0").split('').map(i=>i==='0'?' ':'#').join(''));
}
return answer;
}
풀이방법
n x n matrix에 비밀지도가 담겨져 있는 것이다.
arr1과 arr2에 있는 숫자들을 OR 비트 연산자(|)를 이용하여 벽 부분을 만들고 toString(2)를 이용하여 이진수의 형태의 문자열로 바꿔준다.
이 후 padStart라는 메서드를 이용하여 n개로 통일시켜준다. 부족한 부분은 0으로 채워넣는다.
split이라는 메서드를 이용하여 String을 Array로 변환한 뒤에 map이라는 메서드를 이용하여 0은 띄어쓰기로 1은 #으로 바꿔주고 join이라는 메서드를 이용하여 String으로 변환하였다.
느낀점
그냥 십진수 숫자에서 비트 연산자를 사용하면 이진수로 계산한 후 십진수로 변환된다는 점이 매우 흥미로웠다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
| [JavaScript] 거리두기 확인하기 (0) | 2022.08.15 |
|---|---|
| [JavaScript] 디스크 컨트롤러 (0) | 2022.08.02 |
| [JavaScript] 가장 먼 노드 (0) | 2022.08.01 |
| [JavaScript] [1차] 뉴스 클러스터링 (0) | 2022.08.01 |
| [JavaScript] 부족한 금액 계산하기 (0) | 2022.08.01 |