Programmers/JAVA
[ 프로그래머스 ] 최소 직사각형 - Java
giggs
2023. 1. 14. 10:58
1. 문제 설명
2. 문제 풀이 핵심이라 생각하는 점
- 길이가 긴 값들 중 가장 큰 값, 길이가 작은 값들 중 가장 큰 값
- 각각의 명함들의 가로와 세로길이 중 긴 쪽을 가로로 재배치
- 가로값 = paramMax 변수로, 세로값은 = paramMin 변수로 비교
- 가로값 중 최댓값, 세로값 중 최댓값
- 최댓값을 모아놓고 그중 최댓값, 최솟값을 모아놓고 그중 최댓값
3. 정답 코드 확인 및 활용 메소드 체크
3-1 : 정답 코드 확인
class Solution {
public int solution(int[][] sizes) {
int max = 0;
int min = 0;
for (int[] size : sizes) {
int paramMax = Math.max(size[0], size[1]);
int paramMin = Math.min(size[0], size[1]);
if (paramMax > max) {
max = paramMax;
}
if (paramMin > min) {
min = paramMin;
}
}
return max * min;
}
}
4. 공부하고 싶은 다른 분의 풀이
- 풀이 방법은 비슷하다.
- Math 메소드를 중복으로 활용하여 코드의 가독성이 더 좋아 보여서 체크해 놓았다.
class Solution {
public int solution(int[][] sizes) {
int length = 0, height = 0;
for (int[] card : sizes) {
length = Math.max(length, Math.max(card[0], card[1]));
height = Math.max(height, Math.min(card[0], card[1]));
}
int answer = length * height;
return answer;
}
}