프로그래머스 | 쿼드압축 후 개수 세기
재귀함수를 사용하는데 익숙해져야해!!
let answer = [0,0];//재귀함수를 돌면서 0과 1의 갯수를 계속 더해야 하기 때문에 solution함수 밖에 놓는다
function solution(arr) {
if(arr.length===1){
if(arr[0]===0)answer[0]+=1;
else answer[1]+=1;
}
else if(arr.length===2){
let result=check(arr);
if(result===0)answer[0]+=1;
else if(result===1) answer[1]+=1;
else{
solution([arr[0][0]]);
solution([arr[0][1]]);
solution([arr[1][0]]);
solution([arr[1][1]]);
}
}
else{
let result=check(arr);
if(result===0)answer[0]+=1;
else if(result===1) answer[1]+=1;
else{
let a=[];
let b=[];
let c=[];
let d=[];
for(let i=0;i<arr.length/2;i++){
a.push(arr[i].slice(0,arr[i].length/2));
b.push(arr[i].slice(arr[i].length/2,arr[i].length));
}
for(let i=arr.length/2;i<arr.length;i++){
c.push(arr[i].slice(0,arr[i].length/2));
d.push(arr[i].slice(arr[i].length/2,arr[i].length));
}
solution(a);
solution(b);
solution(c);
solution(d);
}
}
return answer;
}
function check(arr){
for(let i=0;i<arr.length;i++){
for(let j=0;j<arr[i].length;j++){
if(arr[i][j]!==arr[0][0]){
return false;
}
}
}
return arr[0][0];
}
Author And Source
이 문제에 관하여(프로그래머스 | 쿼드압축 후 개수 세기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gusgk2658/쿼드압축-후-개수-세기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)