반응형
https://www.acmicpc.net/problem/17829
문제 해결 알고리즘
전형적인 분할 정복 문제이다.
소스 코드
#include <bits/stdc++.h>
using namespace std;
int arr[1100][1100];
void div_n_cnqr(int N, int x, int y){
if(N == 2){
vector<int> v;
v.push_back(arr[x][y]);
v.push_back(arr[x+1][y]);
v.push_back(arr[x][y+1]);
v.push_back(arr[x+1][y+1]);
sort(v.begin(), v.end());
arr[x][y] = v[2];
return;
}
div_n_cnqr(N/2, x, y);
div_n_cnqr(N/2, x+N/2, y);
div_n_cnqr(N/2, x, y+N/2);
div_n_cnqr(N/2, x+N/2, y+N/2);
vector<int> v;
v.push_back(arr[x][y]);
v.push_back(arr[x+N/2][y]);
v.push_back(arr[x][y+N/2]);
v.push_back(arr[x+N/2][y+N/2]);
sort(v.begin(), v.end());
arr[x][y] = v[2];
}
int main(){
int N; cin >> N;
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
cin >> arr[i][j];
}
}
div_n_cnqr(N, 0, 0);
cout << arr[0][0];
}
반응형
'알고리즘 문제 해결 > BOJ' 카테고리의 다른 글
[BFS] BOJ 2589 보물섬 (0) | 2022.01.21 |
---|---|
[백 트래킹] BOJ 1038 감소하는 수 (0) | 2022.01.18 |
[그리디] BOJ 16496 큰 수 만들기 (0) | 2022.01.12 |
[BFS] BOJ 17267 상남자 (0) | 2022.01.08 |
[BFS] BOJ 5427 불, BOJ 4179 불! (0) | 2022.01.05 |