Lv.2 쿼드압축 후 개수 세기
🤖문제
👍🏻 2022년 2월 6일
처음 코드
<script>
function solution(arr) {
var answer = [0,0];
const quad = (arr) => {
if (arr.length === 1) return answer[arr[0][0]]++;
let initialNum = arr[0][0];
// 전부 0인지 1인지 구하는 부분 (밑에서 수정)
let same = true;
for(let i=0; i<arr.length; i++) {
if (!same) break;
for (let j=0; j<arr.length; j++) {
if (arr[i][j] !== initialNum) {
same = false;
break;
}
}
}
if (same) return answer[arr[0][0]]++;
let q1 = arr.splice(0, arr.length/2);
let q2 = q1.map(v => v.splice(v.length/2, v.length));
let q3 = arr;
let q4 = q3.map(v => v.splice(v.length/2, v.length));
quad(q1);
quad(q2);
quad(q3);
quad(q4);
}
quad(arr);
return answer;
}
</script>
every 써서 전부 0인지 1인지 판별
<script>
let allZero, allOne;
allZero = arr.every((row) => row.every(v => v===0));
allOne = arr.every((row) => row.every(v => v===1));
if (allZero || allOne) same = true;
</script>
풀기 전에 겁부터 먹었던 재귀함수였는데 오늘 사알짝 감을 잡았다. 🙂
every나 some같은 js 기본 함수들을 자주 사용하면서 익숙해져야겠다고 느꼈다.
Author And Source
이 문제에 관하여(Lv.2 쿼드압축 후 개수 세기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@youjinee98/Lv.2-쿼드압축-후-개수-세기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)