문제
풀이 1
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<vector<int>> sizes) {
int answer = 0;
int w =0, h = 0;
for(int i=0; i<sizes.size(); i++){
int max_index = max_element(sizes[i].begin(), sizes[i].end()) - sizes[i].begin();
if(w < sizes[i][max_index]) w = sizes[i][max_index];
if(h < sizes[i][1-max_index]) h = sizes[i][1-max_index];
}
return w * h;
}
최댓값 index를 구해서 풀이한 방법이다.
그러나 algorithm라이브러리에 최댓값, 최솟값을 비교하여 구할 수 있는 max, min함수가 있다는 것을 알게 되었다.
풀이 2
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<vector<int>> sizes) {
int answer = 0;
int w =0, h = 0;
for(int i=0; i<sizes.size(); i++){
h = max(h,max(sizes[i][0],sizes[i][1]));
w = max(w,min(sizes[i][0],sizes[i][1]));
}
return answer = w * h;
}
훨씬 더 코드가 깔끔해졌고 가독성도 좋아졌다!
max( )를 사용하면 최댓값을
min( )를 사용하면 최솟값을 구할 수 있다.
-수정-
https://blockdmask.tistory.com/366
'Algorithm > Programers - C++' 카테고리의 다른 글
[프로그래머스] 같은 숫자는 싫어 / unique (0) | 2022.02.08 |
---|---|
[프로그래머스] 부족한 금액 계산하기 (0) | 2022.02.07 |
[프로그래머스] 2016년 (0) | 2022.02.04 |
[프로그래머스]두 개 뽑아서 더하기 (0) | 2022.02.03 |
[프로그래머스]약수의 개수와 덧셈 (0) | 2022.02.03 |