오늘의 목표

  • 아침 코드카타
  • 언리얼 강의 챕터 3-1 수강
  • 언리얼 마스터 라이브세션 참가
  • 언리얼 7번 과제 도전기능 구현

추가목표: 언리얼 강의 챕터 3-2 수강

 


 

코드카타

[문제] 최소 직사각형

 

명함의 가로 세로 값이 int** 배열로 주어지고, 해당 명함이 들어갈 수 있는 가장 작은 지갑을 찾는 문제.

 

[나의 풀이]

처음에는 int** 배열에서 일단 최대 가로값과 세로값을 구한 뒤 최대 가로값과 최대 세로값을 가진 명함을 회전시켜서 나중에 구하려고 했다. 그러니까 회전시키고 나서 다시 최대 가로값과 세로값을 구해야하는 불필요하고 복잡한 함수가 되었다.

 

[문제 해답]

가로, 세로 모두를 포함한 길이를 순환하며 비교한 뒤 최대 가로값을 고정시키고, 그 이후에 다시 한 번 명함 길이 배열을 순환하며 세로값을 비교한다. 만약 세로값이 가로값보다 길 경우에는 명함을 회전시켜 길이가 긴 쪽을 가로값으로 만든 뒤 세로를 비교하면 된다.

 

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int** sizes, size_t sizes_rows, size_t sizes_cols) {
    int answer = 0;
    int maxLong = 0;
    int maxShort = 0;

    int temp = 0;
    for (int i = 0; i < sizes_rows; ++i)
    {
        if (!sizes[i]) return -1;

        int w = sizes[i][0];
        int h = sizes[i][1];
        int longSide = w > h ? w : h;
        if (longSide > maxLong)
        {
            maxLong = longSide;
        }
    }

    for (int i = 0; i < (int)sizes_rows; ++i)
    {
        int w = sizes[i][0];
        int h = sizes[i][1];

        if (w > h)
        {
            if (h > maxShort) maxShort = h;
        }
        else {
            if (w > maxShort)
            {
                maxShort = w;
            }
        }
    }
   
    answer = maxLong * maxShort;

    return answer;
}

 

 


 

 

코딩팁

ctrl + alt + 마우스 클릭 -> 코드에서 여러 부분을 선택해서 동시에 작성 가능

 

 

오늘의 아쉬웠던 점

코딩 문제를 풀 때 오래 걸리면 해답을 검색해보는 습관을 들이자. 한 문제를 오래 잡고 있는다고 풀리지는 않는다...

 


 

콜리전

 

 

Collision



 

과제

 

'Unreal5 공부 > TIL' 카테고리의 다른 글

2026/04/28 TIL  (0) 2026.04.28
2026/04/27 TIL  (0) 2026.04.27
2026/04/23 TIL  (0) 2026.04.23
2026/04/22  (0) 2026.04.22
2026/4/21 TIL  (0) 2026.04.21

+ Recent posts