입력 코드
#include <stdio.h>
char s[64][65];
void search(int x, int y, int v, int a) {
char t;
int i, j, f = 1;
t = s[x][y];
for (i = x; i < x + v&&f; i++) {
for (j = y; j < y + v&&f; j++) {
if (t != s[i][j])
f = 0;
}
}
if (f)
printf("%c", t);
else {
printf("(");
search(x, y, v / 2, 0);
search(x, y + v / 2, v / 2, 0);
search(x + v / 2, y, v / 2, 0);
search(x + v / 2, y + v / 2, v / 2, 1);
}
if (a)
printf(")");
}
int main() {
int N, i;
scanf("%d", &N);
for (i = 0; i < N; i++) {
scanf("%s", &s[i]);
}
search(0, 0, N, 0);
}
출처 www.acmicpc.net/source/3784482
코드 설명
#분할정복 #재귀
참고
m.blog.naver.com/qkfkf123/60179360083
[알고리즘] 쿼드트리란? ( QuadTree )
쿼드트리 ( QuadTree ): 자료구조의 트리를 기반으로 자식노드가 4개인 트리를 의미한다. 3D데이터를 표...
blog.naver.com
https://blog.naver.com/maelblood/20168518863
쿼드트리 개념
우리가 쿼드컬링을 적용시키기 위하여, 우선적으로 생각해야하는 부분은 쿼드컬링을 적용시키기 위한 조건...
blog.naver.com
문제 출처
1992번: 쿼드트리
첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또
www.acmicpc.net
'C' 카테고리의 다른 글
#96. [백준_C언어] 2417 : 정수 제곱근 \ 이분 탐색 (0) | 2021.02.24 |
---|---|
#95. [백준_C언어] 1780 : 종이의 개수 \ 분할 정복 (0) | 2021.02.23 |
#93. [백준_C언어] 1074 : Z \ 분할 정복 (0) | 2021.02.22 |
#92. [백준_C언어] 2447 : 별 찍기 - 10 \ 분할 정복 (0) | 2021.02.22 |
#91. [백준_C언어] 11047 : 동전 0 \ 그리디 알고리즘 (0) | 2021.02.20 |