프로그래머스 쿼드압축 후 개수 세기

피나코·2021년 7월 2일
0

알고리즘

목록 보기
9/46

문제 바로가기

#include <string>
#include <vector>

using namespace std;
vector<int> answer(2);
string qdtr(vector<vector<int> > &a, int x, int y, int n){
    bool check = false;
    string result = "";
    int num_of_zero = 0, num_of_one = 0;
    if(n == 1) return to_string(a[x][y]);
    for(int i = x ; i < x + n ; i++){
        for(int j = y ; j < y + n ; j++){
            if(a[x][y] != a[i][j]) { 
                check = true;
                break;
            }}}
    if(check) return qdtr(a,x,y,n/2)+
                     qdtr(a,x,y+n/2,n/2)+
                     qdtr(a,x+n/2,y,n/2)+ 
                     qdtr(a,x+n/2,y+n/2,n/2);
    
    else return to_string(a[x][y]);
}
vector<int> solution(vector<vector<int>> arr) {
    string ans = qdtr(arr,0,0,arr.size());
    for(int i = 0 ; i < ans.length();i++) {
        if(ans[i] == '0') answer[0]++;
        else answer[1]++;
    }
    return answer;
}

사실 그냥 풀었습니다 뭐 간단한 재귀 문제다

profile
_thisispinako_

0개의 댓글

관련 채용 정보