[BOJ] 2630 번 : 색종이 만들기
2024. 8. 16. 08:37ㆍAlgorithm
1. problem :
https://www.acmicpc.net/problem/2630
2. solution 1 :
#include <bits/stdc++.h>
using namespace std;
int paper[129][129];
int cnt[2];
int N;
bool check(int x, int y, int z) {
for (int i = x; i < x + z; i++) {
for (int j = y; j < y + z; j++) {
if (paper[x][y] != paper[i][j]) {
return false;
}
}
}
return true;
}
void solve(int x, int y, int z) {
if (check(x, y, z)) {
cnt[paper[x][y]] += 1;
return;
}
z /= 2;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
solve(x + i * z, y + j * z, z);
}
}
}
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cin >> paper[i][j];
}
}
solve(0, 0, N);
for (int i = 0; i < 2; i++) cout << cnt[i] << '\n';
}
'Algorithm' 카테고리의 다른 글
| [BOJ] 1182번 : 부분수열의 합 (0) | 2024.08.17 |
|---|---|
| [BOJ] 1992번 : 쿼드트리 (0) | 2024.08.16 |
| [BOJ] 1780번 : 종이의 개수 (0) | 2024.08.15 |
| [BOJ] 17478 : 재귀함수가 뭔가요? (0) | 2024.08.15 |
| [BOJ] 11729번 : 하노이 탑 이동순서 (0) | 2024.08.15 |