728x90
반응형
https://www.acmicpc.net/problem/2630
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
#include <iostream>
using namespace std;
static int** arr;
static int ans[2];
bool check(int row, int col, int num) {
int standard = arr[row][col];
for (int i = row; i < row + num; i++) {
for (int j = col; j < col + num; j++) {
if (standard != arr[i][j]) {
return false;
}
}
}
return true;
}
int divide(int row, int col, int num) {
if (check(row, col, num)) {
ans[arr[row][col]]++;
}
else {
int div = num / 2;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
divide(row + (i * div), col + (j * div), div);
}
}
}
return 0;
}
int main() {
int n;
scanf("%d", &n);
arr= new int*[n];
for (int i = 0; i < n; i++) {
arr[i] = new int[n];
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &arr[i][j]);
}
}
divide(0, 0, n);
for (int i = 0; i < 2; i++) {
printf("%d\n", ans[i]);
}
return 0;
}
|
cs |
분할정복을 복습할겸 쉬운문제로 풀어봤다.
이걸 풀면서 정말 어처구니 없는 실수를 했는데 식별자를 찾을 수 없다는 에러를 만났다.
알고보니 check함수랑 divide함수를 main함수 뒤에 써줘서 컴파일 도중에 모르는 함수를 만나서 생긴 오류였다.
앞으론 main함수 위에 써주자. 자바를 계속 쓰다보니 헷갈린다..
728x90
반응형
'C++ > 백준' 카테고리의 다른 글
[C++백준] 실버 3/ 2312번 수 복원하기 (0) | 2022.03.04 |
---|---|
[C++백준] 실버 4/ 2108번 통계학 (0) | 2022.02.02 |
[C++백준] 실버 5/ 7568번 덩치 (0) | 2022.02.01 |
[java 백준] 실버 3/ 11659번 구간 합 구하기 (0) | 2022.01.31 |
[C++ 백준]실버 5/ 1037번 약수 (0) | 2022.01.30 |
댓글