최소 직사각형 구하기

2024. 12. 31. 10:39·공부/Code Cata

 

*초기 작성 코드

더보기
#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 함수를 통해 현재 명함의 넓이를 큰 값, 높이를 작은 값으로 바로 설정해서 각각 최대 값을 갱신하였다.

'공부 > Code Cata' 카테고리의 다른 글

문자열에서 영문 숫자 변환하기  (0) 2024.12.31
시저 암호(알파벳 순환 이동)  (0) 2024.12.31
재귀호출로 배열의 합 검사하기  (0) 2024.12.30
비트 AND연산 / std::toupper / std::tolower  (0) 2024.12.30
3진법 뒤집기  (1) 2024.12.27
'공부/Code Cata' 카테고리의 다른 글
  • 문자열에서 영문 숫자 변환하기
  • 시저 암호(알파벳 순환 이동)
  • 재귀호출로 배열의 합 검사하기
  • 비트 AND연산 / std::toupper / std::tolower
동그래님
동그래님
  • 동그래님
    개발자 동그래
    동그래님
  • 전체
    오늘
    어제
    • 분류 전체보기 (210)
      • 공부 (51)
        • Code Cata (50)
      • 내배캠 (151)
        • TIL (50)
        • C++ (37)
        • Unreal Engine (48)
        • GAS(Gameplay Ability System.. (16)
      • Project (7)
        • Gunfire Paragon (5)
        • Arena Fighters (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    동그래님
    최소 직사각형 구하기
    상단으로

    티스토리툴바