-
[프로그래머스] 최소 직사각형 자바 Math.max Math.min코딩테스트 2025. 4. 3. 15:05반응형
문제
주어진 명함 가로 세로의 크기의 집합 sizes 중 모든 명함을 넣을 수 있는 최소 직사각형 w * h 를 구하시오.
제한사항
명함은 90도 회전이 가능하다.
sizes의 원소는 [w, h] 형식입니다. // w는 명함의 가로 길이, h는 명함의 세로 길이
w와 h는 1 이상 1,000 이하인 자연수입니다.접근
sizes를 순회하여 maxW 와 maxH를 구하되, 회전을 염두하여 크기를 갱신한다.
w를 w h 중 큰 쪽, h 를 w h 중 작은 쪽으로 한 후 최대값과 비교하여 갱신하는 방식이다.
public int solution(int[][] sizes) { int maxW = 0; int maxH = 0; //먼저 w h 최대값 구하기 for (int[] card : sizes) { //가로는 더 긴쪽, 세로는 더 짧은 쪽을 선택한다. int w = Math.max(card[0], card[1]); int h = Math.min(card[0], card[1]); //최대값 갱신 maxW = Math.max(maxW, w); maxH = Math.max(maxH, h); } return maxW * maxH; }
반응형'코딩테스트' 카테고리의 다른 글
[프로그래머스] 부족한 금액 계산하기 자바 등차수열의 합 (0) 2025.04.04 [프로그래머스] 없는 숫자 더하기 자바 sort (0) 2025.04.04 [프로그래머스] 나머지가 1이 되는 수 찾기 자바 제곱근 활용 (0) 2025.04.03 [프로그래머스] 신고 결과 받기 자바. Set 활용 중복제거 (0) 2025.04.03 [프로그래머스] 성격 유형 검사하기 (0) 2025.04.03