입력 코드
#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
https://blog.naver.com/maelblood/20168518863
문제 출처
'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 |