[프로그래머스(Programmers)][자바(java)] (Lv1) 8주차 - 최소직사각형 <위클리 챌린지>

728x90

 

https://programmers.co.kr/learn/courses/30/lessons/86491

 

코딩테스트 연습 - 8주차

[[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133

programmers.co.kr

 

문제 풀이

 

public class Solution {

	public int solution(int[][] sizes) {
		int n = sizes.length, wm = 0, hm = 0, w, h, t; // width_max, height_max
		for (int i = 0; i < n; ++i) {
			w = sizes[i][0]; h = sizes[i][1];
			if (w < h) { t = w; w = h; h = t; }
			if (wm < w) wm = w;
			if (hm < h) hm = h;
		}
		return wm * hm;
	}
}

 

명함들의 가로( w ), 세로( h ) 길이 각각 최대값을 구하는데,
가로보다 세로가 더 긴 경우, 가로로 눕히는 것이 더 작은 크기의 지갑에 수납 가능하므로 
가로 세로 길이를 바꿈( 가로로 눕힘 )
그 후 가로 최댓값( wm )과 세로 최댓값( hm )을 곱한 값을 리턴

 

 

반응형