[백준 1780번] 종이의 개수 (C++)PS/백준 알고리즘[BOJ]2023. 10. 21. 17:01
Table of Contents
728x90
반응형
//white: 0, black: 1
#define SIZE 2187
#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;
int dat; // -1, 0, 1
int cnt[3]; // -1: 0, 0: 1, 1: 2
int map[SIZE][SIZE];
// change - true, not change - false
bool check(int x1, int y1, int x2, int y2) {
dat = map[x1][y1];
for (int i = x1; i < x2; i++) {
for (int j = y1; j < y2; j++) {
if (dat != map[i][j]) return true;
}
}
return false;
}
void dc(int size, int x, int y) {
if (size == 1) {
cnt[++map[x][y]]++;
return;
}
if (!check(x, y, x + size, y + size)) {
cnt[++map[x][y]]++;
return;
}
size /= 3;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) dc(size, x + size * j, y + size*i);
}
}
int main(void) {
cin.tie(0);
ios_base::sync_with_stdio(NULL);
int N;
cin >> N;
for (int i = 0; i < N; i++) {;
for (int j = 0; j < N; j++) cin >> map[j][i];
}
dc(N, 0, 0);
cout << cnt[0] << "\n" << cnt[1] << "\n" << cnt[2];
return 0;
}
728x90
반응형
'PS > 백준 알고리즘[BOJ]' 카테고리의 다른 글
[백준 9920번] image (C++) (0) | 2023.10.21 |
---|---|
[백준 10830번] 행렬 제곱 (C++) (0) | 2023.10.21 |
[백준 1992번] 쿼드트리 (C++) (0) | 2023.10.21 |
[백준 2630번] 색종이 만들기 (C++) (0) | 2023.10.20 |
[백준 1074번] Z (C++) (0) | 2023.10.18 |
@BE_개발자 :: 경이로운 개발일기
경이로운 BE 개발자가 되기 위한 프로그래밍 공부 기록장
도움이 되었다면 "❤️" 또는 "👍🏻" 해주세요! 문의는 아래 이메일로 보내주세요.