[Java] 최소직사각형 - Lv1 프로그래머스 완전탐색 / 코딩테스트 고득점 Kit코딩테스트/프로그래머스2023. 4. 16. 06:57
Table of Contents
728x90
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/86491
풀이
문제 자체는 어렵지 않았다.
1. sizes 배열에서 긴 쪽을 가로, 세로 중 한 곳으로 몰아넣음
2. 가로가 가장 큰 녀석, 세로가 가장 큰 녀석 곱해주면 끝.
첫 풀이
class Solution {
public int solution(int[][] sizes) {
int[][] size = new int[sizes.length][2];
for(int i=0; i<sizes.length; i++) {
size[i][0] = Math.max(sizes[i][0], sizes[i][1]);
size[i][1] = Math.min(sizes[i][0], sizes[i][1]);
}
int x = 0;
int y =0;
for(int[] i : size) {
x = Math.max(x, i[0]);
y = Math.max(y, i[1]);
}
return x*y;
}
}
굳이 size 배열을 생성하지 않아도 처리할 수 있으므로 간결하게 수정했다.
class Solution {
public int solution(int[][] sizes) {
int x = 0;
int y = 0;
for(int[] size : sizes) {
x = Math.max(x, Math.max(size[0], size[1]));
y = Math.max(y, Math.min(size[0], size[1]));
}
return x*y;
}
}
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!