안녕 세상아,

[프로그래머스/c++] Lv1 최소직사각형 본문

프로그래머스

[프로그래머스/c++] Lv1 최소직사각형

돈 많은 백수가 되고싶다 2024. 8. 31. 15:47

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

 

프로그래머스

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

programmers.co.kr

 

가장 작은 지갑을 만들기 위해서는 큰수끼리 묶고 작은수끼리 묶으면 된다. 그를 위해 swap을 사용하였다. 

그 후 큰 수로 묶인 것 중 가장 큰 값을 찾고, 작은 수로 묶인 것 중 가장 큰 값을 찾아서 곱해주면 된다. 

#include <string>
#include <vector>

using namespace std;

int solution(vector<vector<int>> sizes) {
    int answer = 0;
    int row = -1;
    int col = -1;

    for (int i = 0; i < sizes.size(); i++) {
        if (sizes[i][0] < sizes[i][1]) {
            swap(sizes[i][0], sizes[i][1]);
        }
    }
    for (int i = 0; i < sizes.size(); i++) {
        row = max(row, sizes[i][0]);
        col = max(col, sizes[i][1]);
    }
    answer = row * col;
    return answer;
}

 

2차원 배열, 벡터 너무 어려워..ㅠ 익숙하지 않아서 더 어려운 것 같음. 이것만 익숙해지게 좀 해봐야겠어,,하