728x90
4분면으로 나눠서 재귀함수를 돌려준다.
//백준 24460 - 특별상이라도 받고 싶어
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
vector<vector<int>> chair;
int getNum(int x, int y, int n){
int val[4];
if(n == 1){
return chair[x][y];
}
val[0] = getNum(x, y, n/2);
val[1] = getNum(x + n/2, y, n/2);
val[2] = getNum(x, y+ n/2, n/2);
val[3] = getNum(x + n/2, y + n/2, n/2);
sort(val, val+4); // 오름차순으로 정렬
return val[1]; // 2번째로 작은 값 반환
}
int main(){
int n;
scanf("%d", &n);
// 추첨번호 입력받기
chair.resize(n, vector<int>(n)); // 2차원 벡터 n*n 초기화
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
scanf("%d", &chair[i][j]);
}
}
// 결과 출력
printf("%d", getNum(0,0,n));
return 0;
}
⭐크기 순이 필요한 경우 배열에 넣어서 sort 사용하기
'Algorithm > Baekjoon' 카테고리의 다른 글
🟡미완 [백준 1074] C++ (0) | 2024.07.20 |
---|---|
[백준 11729] C++ / 하노이 탑 (1) | 2024.07.20 |
[백준 10828] C++ - Stack (0) | 2024.07.16 |
[백준 10988] C++ - 팰린드롬 확인 (0) | 2024.07.16 |
[백준 10870] C++ 피보나치 수 (0) | 2024.07.15 |