어떻게 구현해야 하는지 생각하는데 시간을 좀 썼다.
금방 풀 것 같은 느낌이었는데 생각보다 명쾌하게 나오지는 않았다.
각 배열에서 큰 값은 큰 값 리스트에 넣고 작은 값은 작은 값 리스트에 넣어서 각 리스트에서 최댓값을 추출하는 것으로
구현했다.
리스트를 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;
}
}
'코딩 테스트' 카테고리의 다른 글
(Java) 프로그래머스 2016 (0) | 2021.11.13 |
---|---|
(Java) 프로그래머스 예산 (0) | 2021.11.13 |
(Java) 프로그래머스 나머지가 1이 되는 수 찾기 (0) | 2021.11.11 |
(Java) 프로그래머스 비밀지도 (0) | 2021.11.10 |
(Java) 프로그래머스 문자열 내 마음대로 정렬하기 (0) | 2021.11.05 |