CodingTest/Programmers
[Programmers] 최소직사각형
창브로
2025. 4. 12. 20:35
[문제 링크]
https://school.programmers.co.kr/learn/courses/30/lessons/86491?language=java
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
[풀이 과정]
명함의 가로와 세로의 길이를 정해서 주는 문제지만 명함을 돌릴 수 있다.
돌릴 수 없다면 각 명함의 '가로에서 가장 큰 값 * 세로에서 가장 큰 값'이 정답이지만
명함을 돌릴 수 있기 때문에 각 명함의 '가로 세로 중 큰 값 중에 큰 값 * 가로 세로 중 작은 값 중에 큰 값'을 곱하여
효율적인 크기로 답을 구할 수 있다.
[코드]
import java.util.*;
class Solution {
public int solution(int[][] sizes) {
int answer = 0;
int maxValue = 0;
int minValue = 0;
for(int[] size : sizes) {
int x = size[0];
int y = size[1];
// 각각의 명함의 가로, 세로중 큰 값끼리 비교해서 가장 큰 값 구하기
maxValue = Math.max(maxValue, Math.max(x,y));
// 각각의 명함의 가로, 세로중 작은 값끼리 비교해서 가장 작은 값 구하기
minValue = Math.max(minValue, Math.min(x,y));
}
return maxValue * minValue;
}
}
[회고]
쉬웠습니다.
질문과 피드백은 언제나 환영입니다.
감사합니다.