https://programmers.co.kr/learn/courses/30/lessons/86491?language=cpp
풀이
명함을 90도 회전하여 보관할 수도 있으므로 가로길이, 세로길이가 고정적이지 않음
가로길이->세로길이, 세로길이->가로길이로 변경하여 보관할 수 있음
- vector의 요소마다 {큰 값, 작은 값}의 형식으로 변경
- vector의 각 요소의 0번째, 1번째값의 최대값을 구함 -> 요건을 만족하는 지갑의 사이즈
#include <string>
#include <vector>
using namespace std;
int solution(vector<vector<int>> sizes) {
// {큰 값, 작은 값의 형식으로 변경}
for(int i=0;i<sizes.size();i++){
int w=sizes[i][0];
int h= sizes[i][1];
if(w<h){
sizes[i][0]=h;
sizes[i][1]=w;
}
}
int max_w=0;
int max_h=0;
//각 요소별 최대값 탐색
for(int i=0;i<sizes.size();i++){
max_w=max_w<sizes[i][0]?sizes[i][0]:max_w;
max_h=max_h<sizes[i][1]?sizes[i][1]:max_h;
}
return max_w*max_h;
}
'알고리즘' 카테고리의 다른 글
BOJ 3190 - 뱀(C++) (0) | 2021.09.29 |
---|---|
Programmers - 로또의 최고 순위와 최저 순위(C++) (0) | 2021.09.29 |
Programmers - 퍼즐 조각 채우기(C++) (0) | 2021.09.24 |
BOJ 2467 - 용액(C++) (0) | 2021.09.15 |
Programmers - 직업군 추천하기 (0) | 2021.09.15 |
댓글