본문 바로가기

algorithm/프로그래머스

프로그래머스_최소직사각형(JAVA)

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

[문제 풀이]

해당 문제의 아이디어는 가로와 세로중 큰 길이를 한쪽으로 몰아주는 것에 있습니다. 지갑의 길이들을 확인하며 가로와 세로 중 긴 변을 가로 또는 세로에 모두 몰아주고 그 중 가장 큰 세로와 가로값을 찾아 곱해준 값을 구하는 방법으로 구현하였습니다.

[JAVA]

class Solution {
     public int solution(int[][] sizes) {
        int answer = 0;
        int max_width = 0;
        int max_vertical = 0;
        
        for(int i = 0; i < sizes.length; i++) {
        	int long_length = sizes[i][0] >= sizes[i][1] ? sizes[i][0] : sizes[i][1];
        	int short_length = sizes[i][0] <= sizes[i][1] ? sizes[i][0] : sizes[i][1];
        	
        	if(max_width <= long_length)
        		max_width = long_length;
        	
        	if(max_vertical <= short_length)
        		max_vertical = short_length;
        }
        
        return max_width * max_vertical;
    }
}