728x90
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
'알고리즘' 카테고리의 다른 글
[JAVA]백준 2447번: 별 찍기 - 10 (0) | 2020.12.27 |
---|---|
[JAVA]백준 11653번: 소인수분해 (0) | 2020.12.23 |
[JAVA]백준 2630번: 색종이만들기 (0) | 2020.11.27 |
[JAVA]백준 1748번: 수 이어 쓰기 1 (0) | 2020.11.15 |
[JAVA]백준 1735번: 분수 합 (0) | 2020.11.14 |