본문 바로가기
알고리즘

[JAVA]백준 17829번: 222-풀링

by Kwoncorin 2020. 11. 29.
728x90

www.acmicpc.net/problem/17829

 

17829번: 222-풀링

조기 졸업을 꿈꾸는 종욱이는 요즘 핫한 딥러닝을 공부하던 중, 이미지 처리에 흔히 쓰이는 합성곱 신경망(Convolutional Neural Network, CNN)의 풀링 연산에 영감을 받아 자신만의 풀링을 만들고 이를 22

www.acmicpc.net

 

1. 문제 설명

 

행렬을 2*2 정사각형으로 나누고 그 정사각형에서 2번째로 큰 수만 남긴다. 1*1 크기의 행렬이 남았을 때 어떤 값이 남아있을지 구하자.

 

2*2 행렬씩 나누어가면서 2번째로 큰 수만 배열에 남겼다.

 

 

2. 코드

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Main {

    public static int [][] paper=new int[1025][1025];
    public static int[][] plus={{1,0},{1,1}};

    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);


        int num=scan.nextInt();

        for(int x=0;x<num;x++){
            for(int y=0;y<num;y++)
                paper[x][y]=scan.nextInt();
        }

        make(num);

        System.out.println(paper[0][0]);

        scan.close();
    }

    public static void make(int num){
        if(num==1)
            return;


        for(int x=0;x<num;x+=2){
            for(int y=0;y<num;y+=2){

                int[] temp={paper[x][y],paper[x][y+1],paper[x+1][y],paper[x+1][y+1]};

                Arrays.sort(temp);

                paper[x/2][y/2]=temp[2];

            }
        }

        make(num/2);

    }

}
728x90