아무거나 내꺼 공부할래
[BJ] 1992번 : 쿼드트리(재귀) / c++ & c / 제한시간 : 2초 본문
1992번: 쿼드트리
첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또
www.acmicpc.net
<코드>
#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 |