BOJ. 2630

Opusdeisong·2023년 1월 3일
0

백준 Class3

목록 보기
5/14



#BOJ2630

색종이 만들기

와... 진짜 문제가 너무 똑같아서 1780 문제의 코드를 거의 그대로 가져다 사용했다. 그냥 코드만 봐도 아실거다...얼마나 날먹했는지... 코드만 남기지만 1780 글을 보면 대강 왜 비슷한 지 알 수 있다.

#include <iostream>
#include <algorithm>
using namespace std;

int N;
int arr[128][128], ans[2] = {0};

bool check(int r, int c, int N){
   for (int i = r; i < r + N; i++){
       for (int j = c; j < c + N; j++){
           if (arr[r][c] != arr[i][j]) return false;
       }
   }
   return true;
}

void solve(int r, int c, int N){
   if (check(r, c, N)){
       ans[arr[r][c]] ++;
   }
   else{
       int temp = N / 2;
       for (int i = 0; i < 2; i++){
           for(int j = 0; j < 2; j++){
               solve(r + temp * i, c + temp * j, temp);
           }
       }
   }
}


int main(){
   ios::sync_with_stdio(false);
   cin.tie(NULL);
   cout.tie(NULL);
   
   cin >> N;
   for (int i = 0; i < N; i++){
       for(int j = 0; j < N; j++){
           cin >> arr[i][j];
       }
   }
   solve(0, 0, N);
   for(int i = 0; i < 2; i++){
       cout << ans[i] << "\n";
   }
   
}
profile
Dorsum curvatum facit informaticum.

0개의 댓글