[BOJ] 17829. 222-풀링 - 구현 c++

ha·2022년 1월 25일
0

BOJ

목록 보기
8/28

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];
}

0개의 댓글