최대 풀링
인공지능 분야에서 이미지를 처리할 때, 이미지의 특징을 간단하게 줄이기 위해 최대 풀링이라는 방법을 사용하기도 한다.
최대 풀링은 2차원 배열을 일정한 크기의 작은 영역으로 나눈 뒤, 각 영역에서 가장 큰 값을 하나만 남기는 방법이다.
이번 문제에서는 크기가 \(N \times M\)인 2차원 배열이 주어진다.
\(N\)과 \(M\)은 모두 짝수이다.
배열을 겹치지 않는 \(2 \times 2\) 크기의 영역들로 나누고, 각 영역에서 가장 큰 값을 구해 새로운 배열을 만들려고 한다.
예를 들어 다음과 같은 \(4 \times 4\) 배열이 있다고 하자.
1 3 2 4
5 6 7 8
9 1 3 2
4 5 6 7
이를 \(2 \times 2\) 크기의 영역으로 나누면 다음과 같다.
1 3 2 4
5 6 7 8
9 1 3 2
4 5 6 7
각 영역의 최댓값은 차례대로 \(6, 8, 9, 7\)이므로, 결과 배열은 다음과 같다.
6 8
9 7
2차원 배열이 주어질 때, 최대 풀링을 수행한 결과를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 배열의 세로 크기 \(N\)과 가로 크기 \(M\)이 주어진다.
둘째 줄부터 \(N\)개의 줄에 걸쳐 배열의 원소가 주어진다.
각 줄에는 \(M\)개의 정수가 공백으로 구분되어 주어진다.
출력
최대 풀링을 수행한 결과 배열을 출력한다.
결과 배열은 \(\frac{N}{2}\)개의 줄로 이루어져야 하며, 각 줄에는 \(\frac{M}{2}\)개의 정수를 공백으로 구분하여 출력한다.
제한
- 입력은 모두 정수이다.
- \(2 \le N, M \le 100\)
- \(N, M\)은 짝수이다.
- \(0 \le A_{i,j} \le 1,000\)
예제 입력 1
4 4
1 3 2 4
5 6 7 8
9 1 3 2
4 5 6 7
예제 출력 1
6 8
9 7
코멘트