[프로그래머스] Level.1 최소 직사각형

박의진·2022년 9월 9일
0

코딩테스트

목록 보기
1/25

1. 최소 직사각형의 넓이 구하기

import java.util.*;
class Solution {
    public int solution(int[][] sizes) {
        int answer = 0;
        int max_w = 0; //가로
        int max_h = 0; //세로
        if(sizes.length>=1&&sizes.length<=10000){
            
            for(int i=0; i<sizes.length; i++){
                int w = Math.max(sizes[i][0],sizes[i][1]);
                int h = Math.min(sizes[i][0],sizes[i][1]);
                max_w = Math.max(max_w,w);
                max_h = Math.max(max_h,h);
            }
        }  
        if((max_w>=1&&max_w<=1000)&&(max_h<=1000&&max_h>=1))
            answer = max_w*max_h;
        return answer;
    }
}

풀이: 가로의 길이구할 때는 max 함수를 이용해서 구하고 세로의 길이를 구할때는 min 함수를 이용해서 구한다. 이때 현재 받아온 가로의 값과 최대의 가로 값을 비교해 최댓값을 구하고 동일하게 세로의 값에도 적용하면 최소 넓이의 모든 명함을 다 포함하는 직사각형의 넓이를 구할 수 있다.

시간 복잡도: O(n)으로 생각한다. 중첩 for문이 아닌 하나의 for문만 있기 때문이다.

profile
주니어 개발자의 개발일지

0개의 댓글