JAVA

[Java] Coding Test (최소직사각형)

SangRok Jung 2022. 8. 17. 20:41
반응형

문제


모든 명함의 가로 길이와 세로길이를 나타내는 2차원 배열 sizes가 매개변수로 주어질 때 모든 명함을 수납 할 수 있는 가장 작은 지갑의 크기를 retrun 하도록 solution 함수를 완성하시오.

 

 

명함 번호 가로 길이 세로 길이
1 60 50
2 30 70
3 60 30
4 80 40

 

 

 

▶ 입출력 예

sizes result
[[60, 50], [30, 70], [60, 30], [80, 40]] 4000
[[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120
[[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133

 

 

 

 

 

 

 

 

 

 

해법


본 문제는 Math.max()와 Math.min()을 활용하여 해결합니다.

 

 

 

Math.max()

  • 두 인자 값중 큰 값을 리턴하는 함수.

Math.min()

  • 두 인자 값 중 작은 값을 리턴하는 함수.

 

 

 

import java.util.*;


class Solution {
    public int solution(int[][] sizes) {
        int maxNum = 0;
        int minNum = 0;    
    
        for(int[] i : sizes){
            int maxStemp = Math.max(i[0], i[1]);
            int minStemp = Math.min(i[0], i[1]);

            if(maxStemp > maxNum){
                maxNum = maxStemp;
            }

            if(minStemp > minNum){
                minNum = minStemp;
            }
        }

        return maxNum * minNum;
    }
}

 

 

 

반응형