프로그래머스 LEVEL 2(쿼드압축 후 개수 세기)
-
사용 언어 : javascript
-
해결 날짜 : 2022-11-06
- 해결 방법 :
- 재귀 형식으로 압축하며 문제 해결
- 넘겨 받은 array를 4분할하여 분할 부분마다 종료 조건이 될 때까지 재귀 함수 호출
- 재귀 함수의 시작 부분에서 인자로 넘겨 받은 array가 전부 0이거나 1인 경우 해당하는 정답 배열 증가 및 return
- 회고 :
- x
-
코드
function solution(arr) { const NUMBER = [0, 1]; const answer = [0, 0]; const compression = (array) => { for (const number of NUMBER) { if (array.every(row => row.every(e => e === number))) { answer[number]++; return; } } const half = array.length / 2, top_left = array.splice(0, half), top_right = top_left.map(row => row.splice(half)), botoom_left = array, botoom_right = botoom_left.map(row => row.splice(half)); return [top_left, top_right, botoom_left, botoom_right].map(e => compression(e)); } compression(arr); return answer; }
- 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges