본문 바로가기

Algorithm/Sorting

(C++) - 프로그래머스(위클리 챌린지) : 8주차_최소직사각형

반응형

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

 

코딩테스트 연습 - 8주차_최소직사각형

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

정렬을 사용한 구현 문제였습니다.

📕 풀이방법

📔 풀이과정

 명함을 90도 회전할 수 있기 때문에 아예 명함을 고정해버리는 방법을 생각하는 것이 간단합니다. sizes의 원소마다 sort를 한뒤 첫 번째 원소의 최댓값은 width에, 두 번째 원소의 최댓값은 height에 저장합니다.

📔 정답출력

width * height의 결과값을 출력합니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;

int solution(vector<vector<int>> sizes) {
    int answer = 0x3f3f3f3f;
    int width = 0, height = 0;
    for(auto &s : sizes) {
        sort(s.begin(), s.end());
        width = max(width, s[0]);
        height = max(height, s[1]);
    }
    return width * height;
}