728x90
반응형
목차
https://www.acmicpc.net/problem/1780
문제
재귀에 대한 이해가 부족한 것 같아 풀어보았다.
범위만 나누어서 재귀적으로 탐색하면 쉽게 풀리는 문제였다.
코드 구현
#include <iostream>
#include<iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <stack>
using namespace std;
int arr[5000][5000];
int a = 0;
int b = 0;
int c = 0;
void Count(int row, int column, int n) {
int cnt1 = 0;
int cnt2 = 0;
int cnt3 = 0;
for (int i = row; i < row+n; i++) {
for (int j = column; j < column+n; j++) {
if (arr[i][j] == -1)
cnt1++;
if (arr[i][j] == 0)
cnt2++;
if (arr[i][j] == 1)
cnt3++;
}
}
if (cnt1 == n*n)
a++;
else if (cnt2 == n * n)
b++;
else if (cnt3 == n * n)
c++;
else
{
for (int i = row; i < row+n; i++) {
for (int j = column; j < column+n; j++) {
if (i % (n / 3) == 0 && j % (n / 3) == 0)
Count(i, j, n / 3);
}
}
}
}
int main() {
int N;
cin >> N;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cin >> arr[i][j];
}
}
Count(0,0, N);
cout << a<<"\n";
cout << b << "\n";
cout << c << "\n";
}
반응형
'백준 문제풀이' 카테고리의 다른 글
[백준][bfs] 13913 숨바꼭질4 c++ 구현 (2) | 2024.06.26 |
---|---|
[백준][bfs] 12851 숨바꼭질2 c++구현 (0) | 2024.06.25 |
[백준][bfs] 12869 뮤탈리스크 c++구현 (0) | 2024.06.20 |
[백준][bfs] 4179 불! c++ 구현 (0) | 2024.05.12 |
[백준][dfs] 16234 인구 이동 c++ 구현 (0) | 2024.05.11 |