아무거나 내꺼 공부할래
[BJ] 1992번 : 쿼드트리(재귀) / c++ & c / 제한시간 : 2초 본문
<코드>
#pragma warning(disable:4996)
#include<stdio.h>
using namespace std;
char map[65][65];
int n, p = 0;
char ans[100000];
void compress(int x, int y, int edge) {
char temp;
int i, j;
temp = map[x][y];
if (edge == 1) {
if (temp == '1')ans[p++] = '1';
else ans[p++] = '0';
return;
}
for (i = x; i < x + edge; i++) {
for (j = y; j < y + edge; j++) {
if (temp != map[i][j]) {
ans[p++] = '(';
compress(x, y, edge / 2);
compress(x, y + edge / 2, edge / 2);
compress(x + edge / 2, y, edge / 2);
compress(x + edge / 2, y + edge / 2, edge / 2);
ans[p++] = ')';
return;
}
}
}
if (temp == '1') ans[p++] = '1';
else ans[p++] = '0';
return;
}
int main() {
int i;
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%s", &map[i]);
compress(0, 0, n);
for (i = 0; i < p; i++) {
printf("%c", ans[i]);
}
puts("");
return 0;
}
'[c언어&c++] 알고리즘 공부 > 백준(BJ)' 카테고리의 다른 글
[BJ] 1182번 : 부분수열의 합(재귀,DFS) /c++ & c / 제한시간 : 2초 (0) | 2021.02.25 |
---|---|
[BJ] 2630번 : 색종이 만들기(재귀) / c++ & c / 제한시간 : 1초 (0) | 2021.02.24 |
[BJ] 14889번 : 스타트와 링크 / c++ / 제한시간 : 2초 (0) | 2021.02.24 |
[BJ] 토마토(BFS) / c++ / 제한시간 : 1초 (0) | 2021.02.23 |
[BJ]적록색약 / c / 제한시간 : 1초 (0) | 2021.02.15 |