PS/Baekjoon Online Judge
[백준 2630] 색종이 만들기 [C]
kimyoungrok
2021. 8. 5. 14:09
728x90
풀이
입력받은 N을 이용해 정사각형을 분할하면서 전부다 1 또는 0일때까지 탐색을 하면 된다.
소스코드
#include <stdio.h>
int paper[128][128], w, b;
void color(int x, int y, int n){
int cnt = 0;
for (int i = x; i < x+n; i++)
for (int j = y; j < y+n; j++)
paper[i][j] && cnt++;
if (cnt == n*n) b++;
else if (!cnt) w++;
else {
color(x, y, n/2);
color(x, y+n/2, n/2);
color(x+n/2, y, n/2);
color(x+n/2, y+n/2, n/2);
}
}
int main(){
int N;
scanf("%d", &N);
for (int i = 0; i < N*N; i++)
scanf("%d", &paper[i/N][i%N]);
color(0, 0, N);
printf("%d\n%d", w, b);
}
출처
2630번: 색종이 만들기
첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다.
www.acmicpc.net
728x90