Programming Solve/프로그래머스
프로그래머스 - 위클리 챌린지 8주차, 최소직사각형 / C++
msm1029
2021. 10. 5. 00:30
반응형
문제 링크 : 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
문제 풀이
카드의 긴 부분을 가로 쪽으로 정리하고 카드의 짧은 부분을 세로 쪽으로 정리하여 그 중 가장 큰 가로값, 세로값을 구하여 넓이를 return 하면 된다. 실제 카드를 정리한다고 생각하면 아이디어를 떠올리기 쉽다. 크기가 다른 명함이 여러 개가 있을 때, 대부분 가로가 길기 때문에 눕혀서 정리한다.
소스 코드
#include <bits/stdc++.h>
using namespace std;
int solution(vector<vector<int>> sizes) {
int answer = 0;
int maxWidth = 0, maxHeight = 0;
for(int i=0; i<sizes.size(); i++){
if(sizes[i][0] < sizes[i][1]){
int tmp = sizes[i][0];
sizes[i][0] = sizes[i][1];
sizes[i][1] = tmp;
}
maxWidth = max(sizes[i][0], maxWidth);
maxHeight = max(sizes[i][1], maxHeight);
}
answer = maxWidth * maxHeight;
return answer;
}
반응형