BOJ-2630
06 Jul 2021정답률이 무려 70%가 넘는 분할정복 문제! 사실 난 쉽지 않았는데 왜 이렇게 다들 잘 하는거야…. 😨😨
#include <iostream>
using namespace std;
int map[129][129] = {0};
int white, blue = 0;
void solve(int x, int y, int size) {
int check = map[x][y];
for (int i=x; i<x+size; i++)
for (int j=y; j<y+size; j++) {
if (check == 0 && map[i][j] == 1) check = 2;
if (check == 1 && map[i][j] == 0) check = 2;
if (check == 2) {
solve(x, y, size/2);
solve(x, y+size/2, size/2);
solve(x+size/2, y, size/2);
solve(x+size/2, y+size/2, size/2);
return;
}
}
if (check == 0) white+=1;
if (check == 1) blue +=1;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int N; cin >> N;
if (N!=2 && N!=4 && N!=8 && N!=16 && N!=32 && N!=64 && N!=128) return 0;
for (int i=0; i<N; i++)
for (int j=0; j<N; j++)
cin >> map[i][j];
solve(0, 0, N);
cout << white << "\n" << blue << "\n";
}
해커톤 준비하고 pr, 커밋, 브랜치 망치는 바람에 허버허버 헤매다가 겨우 끝내고 한시반이 되어서야 시작….. 내일 또 출근이라 일찍 일어나야해서…… 정답률 높은 문제로 골라서 풀었다