코딩 테스트
(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;
}
}