코딩 테스트

(Java) 프로그래머스 최소직사각형

로승리 2021. 11. 12. 03:18

어떻게 구현해야 하는지 생각하는데 시간을 좀 썼다.

금방 풀 것 같은 느낌이었는데 생각보다 명쾌하게 나오지는 않았다.

각 배열에서 큰 값은 큰 값 리스트에 넣고 작은 값은 작은 값 리스트에 넣어서 각 리스트에서 최댓값을 추출하는 것으로

구현했다.

리스트를 2개를 쓰고 싶지 않았는데 다른 방법이 바로 떠오르지 않아 그냥 했다...


최종 코드

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
class Solution {
    public int solution(int[][] sizes) {
        int answer = 0;
        // 가로, 세로 길이 list 생성
        List<Integer> ltemp = new ArrayList<>();
        List<Integer> htemp = new ArrayList<>();

        // 가로 길이의 최대값, 세로 길이의 최소값
        for (int i=0; i< sizes.length; i++) {
                int c1 = sizes[i][0];
                int c2 = sizes[i][1];
            ltemp.add(Math.max(c1, c2));
            htemp.add(Math.min(c1, c2));
        }

        // 가로 길이의 최대값중 가장 큰값, 세로 길이의 최소값중 가장 큰값
        int length = Collections.max(ltemp);
        int height = Collections.max(htemp);
        answer = length * height;
        return answer;
    }
}