-
프로그래머스 - [1차] 비밀지도Algorithm 2023. 5. 20. 16:55
문제
풀이
먼저 arr1과 arr2의 각요소마다 비트 or 연산을 한 뒤 sumArr 에 추가한다
이때, or 연산된 최상위 비트가 0이라 생략된 경우 n 길이가 될 때까지 최상위 비트에 0을 추가한다
배열의 요소가 1이면 '#', 0이면 ' '으로 변환한다
function solution(n, arr1, arr2) { let answer = []; let sumArr = []; // arr1과 arr2 or 연산하기 for(let i = 0; i < n; i++) { sumArr.push((arr1[i] | arr2[i]).toString(2)); } // 위의 연산결과의 배열 길이가 n보다 작을경우 즉, 최상위 비트가 0이라 생략된 경우 for(let i = 0; i < sumArr.length; i++) { sumArr[i] = sumArr[i].padStart(n, '0'); } // 배열의 요소가 1이면 '#', 0이면 ' '으로 변환 for(let i = 0; i < sumArr.length; i++) { answer.push(sumArr[i].replace(/1|0/g, num => +num ? '#' : ' ')); } return answer; }
'Algorithm' 카테고리의 다른 글
프로그래머스 - 성격 유형 검사하기 (0) 2023.05.23 프로그래머스 - 짝지어 제거하기 (0) 2023.05.21 프로그래머스 - 신규 아이디 추천 (0) 2023.05.15 프로그래머스 - 과일 장수 (1) 2023.05.12 프로그래머스 - 신고 결과 받기 (1) 2023.05.12