260402 TIL - 팀프로젝트 2일차

2026. 4. 2. 21:22언리얼 7기 본캠프

어제는 너무 바빠서 TIL 작성하는것을 잊었음...

 

//광물 캐기 문제. dfs를 사용해서 백트래킹해서 풀었는데, 그리디로 푸는 방법이 더 빠르다고 해서 놀람
//추후에 다시 한번 풀어볼 의향 있음
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int minfatigue;

void mining(int depth, int currentfatigue, const vector<string>& minerals, vector<int>& picks){
    if (count(picks.begin(), picks.end(), 0) == picks.size() || depth >= minerals.size())
    {
        minfatigue = min(minfatigue, currentfatigue);
        return;
    }
    
    for(int i = 0; i < 3; i++)
    {
        if (picks[i] <= 0) continue;
        int fatigue = 0;
        for(int j = 0; j < 5; j++)
        {
            int targetindex = depth + j;
            if (targetindex >= minerals.size()) break;
            
            switch(i){
                case 0:
                    fatigue++;
                    break;
                case 1:
                    if (minerals[targetindex] == "diamond") fatigue += 5;
                    else fatigue++;
                    break;
                case 2:
                    if (minerals[targetindex] == "diamond") fatigue += 25;
                    else if (minerals[targetindex] == "iron") fatigue += 5;
                    else fatigue++;
                    break;
            }
        }
        picks[i]--;
        mining(depth + 5, currentfatigue + fatigue, minerals, picks);
        picks[i]++;
    }
}

int solution(vector<int> picks, vector<string> minerals) {
    int answer = 0;
    minfatigue = 99999;
    mining(0, 0, minerals, picks);
    answer = minfatigue;
    return answer;
}

 

CS 면접 복기 : 체력바 HUD 클래스와 캐릭터 클래스가 서로를 UPROPERTY로 포인터를 저장했을때 생길 수 있는 문제들

서로를 상호 참조하기 때문에 한쪽이 사라지면 댕글링포인터 등의 오류가 생길 수 있고, 맵을 옮기는 등의 처리를 할 때 UPROPERTY기 때문에 GC가 자동으로 처리를 못하고 메모리에 계속 남아있게 됨

 

 

 

오늘은 인벤토리 UI 로직을 구상했던 대로 뼈대를 작성했는데, 분량이 방대해서 엄청나게 오래 걸림;

내일부터 본격적인 로직 작성과 예제 UI 제작에 들어갈거고, 실제로 어떻게 작동할지에 대해서는 만들면서 조금씩 더 손보고 구현하면서 일들을 가져가야 할 것 같음

 

간략한 인벤토리 다이어그램
다양한 형태로 받고있는 젬 및 스킬 모양 아이디어들