#94. [백준_C언어] 1992 : 쿼드트리 \ 분할 정복

 

입력 코드

#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

 

 

 

문제 출처

www.acmicpc.net/problem/1992

 

1992번: 쿼드트리

첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또

www.acmicpc.net