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

 

코딩테스트 연습 - 최소직사각형

[[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

 

 

문제 분석

- 2차원 배열로 입력받은 명함들을 각각 긴쪽/짧은쪽을 구하여 그 중 가장 큰 값/작은 값을 뽑아낸다.

- Math.max와 Math.min을 이용하여 뽑아낸 숫자들을 곱하여 정답 배열에 넣고 리턴한다.

 

문제 풀이

1. for문을 통해 입력받은 명함의 개수만큼 반복한다.

2. 가로와 세로길이 중 긴 쪽을 height변수에 넣고, 짧은 쪽을 width변수에 넣는다.

3. 가장 긴 세로와 가장 긴 가로를 구하여 곱한 다음 정답을 return한다.

class Solution {
    public int solution(int[][] sizes) {
        int answer = 0;
        int height = 0; // 가장 긴 세로
        int width = 0; // 가장 긴 가로 
        
        for(int i=0;i<sizes.length;i++){            
            if(Math.max(sizes[i][0],sizes[i][1]) > height){
                height = Math.max(sizes[i][0],sizes[i][1]);
            }
            if(Math.min(sizes[i][0],sizes[i][1])>width){
                width = Math.min(sizes[i][0],sizes[i][1]);
            }
        }        
        
        answer = height * width;
                
        return answer;
    }
}

 

 

https://github.com/SOEUN2/Algorithm

'Algorithm > programmers' 카테고리의 다른 글

programmers 예산  (0) 2022.03.13
programmers 2016년  (0) 2022.02.18
programmers 나머지가 1이 되는 수 찾기  (0) 2022.02.18
programmers 부족한 금액 계산하기  (0) 2022.02.18
programmers [1차] 비밀지도  (0) 2022.02.18