Algorithm/Baekjoon

[백준 24460] C++ / 다차원 배열 vector

say! 2024. 7. 20. 17:11
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