Lv.1 최소직사각형

서현우·2022년 5월 12일
0

알고리즘 풀이

목록 보기
31/31

문제 설명

명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다.

제한사항

sizes의 길이는 1 이상 10,000 이하입니다.
sizes의 원소는 [w, h] 형식입니다.
w는 명함의 가로 길이를 나타냅니다.
h는 명함의 세로 길이를 나타냅니다.
w와 h는 1 이상 1,000 이하인 자연수입니다.

예시

[[60, 50], [30, 70], [60, 30], [80, 40]] -> return 4000
[[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] -> return 120
[[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] -> return 133

내 코드

class Solution { 
	public int solution(int[][] sizes) { 
		int max_width = 0; 
		int max_height = 0; 
		int wallet_size; 
		
		for(int i=0;i<sizes.length;i++){ 
			int tmp; 
			//가로보다 세로가 더 길다면 두 인덱스 변경 
			if(sizes[i][0] < sizes[i][1]){ 
				tmp = sizes[i][0]; 
				sizes[i][0] = sizes[i][1]; 
				sizes[i][1] = tmp; 
			} 
			//가로 길이가 가장 긴 것 
			if(max_width<sizes[i][0]){ 
				max_width = sizes[i][0]; 
			} 
			//세로 길이가 가장 긴 것 
			if(max_height<sizes[i][1]){ 
				max_height = sizes[i][1]; 
			} 	
		} 
		wallet_size = max_width * max_height; 
		return wallet_size; 
	} 
}
profile
안녕하세요!!

0개의 댓글