1992 : 쿼드트리

풀이

분할정복을 하자

네모 크기가 1일 떄 까지 내려갔다가

올라오자

코드

#include <stdio.h>

int n;
char a[65][65];

void gogo(int x1, int y1, int x2, int y2) {
	char now = a[x1][y1];
	if (x1 == x2 && y1 == y2) {
		printf("%c", now);
		return;
	}
	for (int i = x1; i < x2; ++i) {
		for (int j = y1; j < y2; ++j) {
			if (now != a[i][j]) {
				printf("(");
				gogo(x1, y1, (x1 + x2) / 2, (y1 + y2) / 2);
				gogo(x1, (y1 + y2) / 2, (x1 + x2) / 2, y2);
				gogo((x1 + x2) / 2, y1, x2, (y1 + y2) / 2);
				gogo((x1 + x2) / 2, (y1 + y2) / 2, x2, y2);
				printf(")");
				return;
			}
		}
	}
	printf("%c", now);
}

int main() {
	scanf("%d\n", &n);
	for (int i = 0; i < n; ++i)
		scanf("%s", a[i]);
	gogo(0, 0, n, n);

	return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2017-02-15 16:55

Read more posts by this author