728x90
반응형
https://www.acmicpc.net/problem/1992
1992번: 쿼드트리
첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또
www.acmicpc.net
문제가 처음에는 이해가 안됐는데 아래처럼 풀면 된다
분할정복을 사용하면 된다
#include <bits/stdc++.h>
using namespace std;
int n;
string mapp[64];
bool check(int x, int y, int n){
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
if(mapp[x+i][y+j] != mapp[x][y])
return false;
}
}
return true;
}
void divide(int x, int y, int n){
if(check(x,y,n)){
cout << mapp[x][y];
return;
}
int div = n/2;
cout << '(';
for(int i=0; i<2; i++){
for(int j=0; j<2; j++){
divide(x+div*i, y+div*j, div);
}
}
cout << ')';
}
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for(int i=0; i<n; i++){
cin >> mapp[i];
}
divide(0, 0, n);
return 0;
}
비슷한 문제
https://develop-me-z.tistory.com/126
[백준/분할정복/C++] 1780번 종이의 개수
https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한
develop-me-z.tistory.com
728x90
반응형
'알고리즘' 카테고리의 다른 글
[백준/완전탐색/C++] 1476번 날짜 계산 (0) | 2023.01.06 |
---|---|
[이코테/구현/C++] 상하좌우 (0) | 2023.01.05 |
[백준/재귀/C++] 11729번 하노이 탑 이동 순서 (0) | 2023.01.05 |
[백준/분할정복/C++] 1780번 종이의 개수 (0) | 2023.01.04 |
[백준/퀵소트/C++] 11728번 배열 합치기 (0) | 2023.01.04 |