1. 문제
[완전탐색]
https://school.programmers.co.kr/learn/courses/30/lessons/86491
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2. 해설
<bash />
class Solution {
public int solution(int[][] sizes) {
int[] width = new int[sizes.length];
int[] height = new int[sizes.length];
for (int i = 0; i < sizes.length; i++) {
width[i] = Math.max(sizes[i][0], sizes[i][1]);
height[i] = Math.min(sizes[i][0], sizes[i][1]);
}
int widthMax = findMax(width);
int heightMax = findMax(height);
int answer = widthMax * heightMax;
return answer;
}
private int findMax(int[] arr) {
if (arr == null || arr.length == 0) {
throw new IllegalArgumentException("배열이 비어 있습니다.");
}
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
}
- 높이와 너비를 둘 다 저장하는 2차원 배열로 했어도 됐을 것 같다.
- width[] : sizes[][] 에서 가로, 세로 중 큰 값을 가져온다.
- height[] : sizes[][] 에서 가로, 세로 중 작은 값을 가져온다.
- width와 height가 순서가 바껴도 상관 없음
- findMax() : 배열에서 가장 큰 값을 찾아주는 메서드
반응형
'study > 코딩테스트' 카테고리의 다른 글
[프로그래머스][Lv1][Java] K번째 수 (0) | 2023.12.28 |
---|---|
[프로그래머스][Lv2] 전력망을 둘로 나누기 (0) | 2023.12.27 |
[프로그래머스][Lv2][Java] 피로도 (0) | 2023.12.27 |
[프로그래머스][Lv2] 거리두기 확인하기 (0) | 2023.12.21 |
[알고리즘] DFS(깊이우선탐색)와 BFS(너비우선탐색) (1) | 2023.12.20 |