https://www.acmicpc.net/problem/17829
C++풀이
1.while(N>1)동안 행, 열 +=2만큼씩 for문 돌면서 [i/2][j/2] 해당 값 func함수 통해서 구한다.
2.func() : 전달받은 x,y지점 부터 2칸씩만 임시 배열에 저장 후 값을 얻는다
3.최종 값 p[0][0]출력
int p[1025][1025];
int N,answer;
int func(int x,int y)
{
vector<int> temp;
for(int i=x;i<x+2;i++)
{
for(int j=y;j<y+2;j++)
{
temp.push_back(p[i][j]);
}
}
sort(temp.begin(),temp.end());
return temp[2];
}
int main() {
cin >> N;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
cin >> p[i][j];
}
}
while(N>1)
{
for(int i=0;i<N;i+=2){
for(int j=0;j<N;j+=2){
p[i/2][j/2]=func(i,j);
}
}
N/=2;
}
cout<<p[0][0];
}