Programmers : 최소 직사각형

혀니앤·2022년 9월 19일
0

C++ 알고리즘

목록 보기
114/118

https://school.programmers.co.kr/learn/courses/30/lessons/86491?language=cpp

1. 접근

  • 기왕이면 큰 값들끼리 비교해서, 가장 큰 값에 다른 큰 값들이 묻히도록,, 하기 위해 큰 값들끼리만 비교해주기로 한다
  • 즉, 나의 경우 세로가 길도록 직사각형을 통일시켜주고 그때의 세로 가로 값들을 비교해주었다.
  • 따라서 배열의 첫 값부터 끝 값까지 순회하면서, 큰 값들과 작은 값들을 각각 비교해서 최종적으로 큰 값으로 직사각형을 만든다.

2. 나의 풀이

#include <string>
#include <vector>

using namespace std;

int solution(vector<vector<int>> sizes) {
    int answer = 0;
    int w = 0; //작은 값
    int h = 0; //큰 값

    for(int i=0;i<sizes.size();i++){
        w = max(w,min(sizes[i].at(0),sizes[i].at(1)));
        h = max(h,max(sizes[i].at(0),sizes[i].at(1))); 
    }
    answer = w*h;

    return answer;
}
profile
일단 시작하기

0개의 댓글