공부/Code Cata
최소 직사각형 구하기
동그래님
2024. 12. 31. 10:39
*초기 작성 코드
더보기
#include <string>
#include <vector>
using namespace std;
int solution(vector<vector<int>> sizes) {
int Max_W = 0;
int Max_H = 0;
for(int i = 0; i < sizes.size(); ++i)
{
// 명함의 길이가 긴 쪽을 0번 인덱스로 정렬
if(sizes[i][0] < sizes[i][1])
{
swap(sizes[i][0], sizes[i][1]);
}
// 최대 w 값 갱신
if(sizes[i][0] > Max_W)
{
Max_W = sizes[i][0];
}
// 최대 h 값 갱신
if(sizes[i][1] > Max_H)
{
Max_H = sizes[i][1];
}
}
return Max_W * Max_H;
}
#include <string>
#include <vector>
using namespace std;
int solution(vector<vector<int>> sizes) {
int W = 0;
int H = 0;
for(int i = 0; i < sizes.size(); ++i)
{
W = max(W, max(sizes[i][0], sizes[i][1]));
H = max(H, min(sizes[i][0], sizes[i][1]));
}
return W * H;
}
- 초기 작성된 코드보다 가독성이 좋아졌고, swap하는 과정이 생략되어서 속도도 더 빠를 것으로 예상된다.
- max와 min 함수를 통해 현재 명함의 넓이를 큰 값, 높이를 작은 값으로 바로 설정해서 각각 최대 값을 갱신하였다.