https://school.programmers.co.kr/learn/courses/30/lessons/86491
배열의 요소를 완전 탐색하는 문제이다.
배열의 요소는 [w, h]로 구성되어 있으며, 각 요소 중 가장 최소가 되는 가로와 세로 값을 구해 넓이를 구하는 문제이다.
배열의 요소를 회전시키며 지갑의 넓이가 최소가 되는 것을 찾아야한다.
위 말은 가로와 세로 값 중 가장 큰 값 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++){
int dw = sizes[i][0];
int dh = sizes[i][1];
if(dw > dh){
w = max(w,dh);
h = max(h,dw);
}
else{
w = max(w,dw);
h = max(h,dh);
}
}
answer = w * h;
return answer;
}
'Programmers Review' 카테고리의 다른 글
[Lv 1] 성격 유형 검사하기 (0) | 2024.06.07 |
---|---|
[Lv 1] 숫자 짝꿍 (0) | 2024.06.07 |
[Lv 1] 신규 아이디 추천 (0) | 2024.06.04 |
[Lv 1] 3진법 뒤집기 (0) | 2024.06.04 |
[Lv 1] 두 개 뽑아 더하기 (0) | 2024.06.04 |