풀이
분할정복을 하자
네모 크기가 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, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이