260212 TIL - 챕터3 팀프로젝트 6일차

2026. 2. 12. 22:57언리얼 7기 본캠프

갈수록 다양한 알고리즘 응용법들에 대해서 나오고있고, 이 알고리즘들을 어떻게 활용할지는 전적으로 나한테 달린듯함

//택배상자 문제. 너무 대놓고 '스택 쓰세요~' 라고 하는 문제라...
//바로 싣건 말건 일단 스택에 넣어놓고 생각하면 된다는 판단이 서서 이렇게 하니까 그냥 맞았음
#include <string>
#include <vector>
#include <stack>

using namespace std;

int solution(vector<int> order) {
    int answer = 0;
    stack<int> subline;
    int current = 0;
    
    for(int i = 1; i <= order.size(); i++)
    {
        subline.push(i);
        while (!subline.empty() && subline.top() == order[current])
        {
            answer++;
            current++;
            subline.pop();
        }
    }
    return answer;
}

//큰 수 만들기 문제. 사실 큰 수라는게 앞에 있는게 크면 장땡이라, 스택에 하나씩 넣으면서
//날릴 수 있는 횟수가 남았고 지금 들어가는 수가 스택의 맨 위 수보다 크면 스택의 맨 위 수를
//날리는 식으로 구현했음. 그러다가도 날리는 수 횟수가 남으면 따로 빼주는걸로.
//근데 이런식으로 쓸걸 생각해보니 그냥 스택을 안쓰고 string 자체 기능만으로도 구현이 가능했을거라 생각됨...
#include <string>
#include <vector>
#include <stack>
#include <algorithm>

using namespace std;

string solution(string number, int k) {
    string answer = "";
    stack<char> temp;
    for(int i = 0; i < number.length(); i++)
    {
        while (!temp.empty() && temp.top() < number[i] && k > 0)
        {
                temp.pop();
                k--;
        }
        temp.push(number[i]);
    }
    while(k > 0)
    {
        temp.pop();
        k--;
    }
    while(!temp.empty())
    {
        answer += temp.top();
        temp.pop();
    }
    reverse(answer.begin(), answer.end());
    return answer;
}

 

오늘은 총기류 반동 및 아이템 상호작용에 대한 기본 코드를 준비해뒀고, 본격적인 인벤토리 UI 로직 구현 시도에 들어감

그러다가 에셋을 깃에 업로드하는 과정에서 혼선이 생겨서 튜터님을 불러서 도움을 요청했고, 에셋 관련 지침 및 커밋 관련 지침을 확실히 해야한다는걸 다시 상기시켜주셨고 결국 에셋관련해서 날아갈 대역폭은 소생이 불가능하니 어쩔수없이 중앙으로 다 모은후 재배포해서 작업을 시작함. 나도 커밋 분리 습관이 제대로 안들어있었고 커밋 단위도 상당히 컸고, 브랜치 개념이 아직 덜잡혀있었어서 PR마다 브랜치를 나눈다는 생각을 못했어서 이부분을 좀 더 확실히 이해하고 적용시켜보고 해보는 시간을 가져야 이후 프로젝트들에도 이런 문제가 더 안생기겠다는 생각이 들었음

 

가급적이면 내일중으로 목업플레이가 가능한 수준이 나왔으면 좋겠는데, 아마 힘들지 않을까 싶은데... 내일은 챌린지반 수업도 있고 챌린지반 과제도 해야할 예정이라 시간이 많이 빡빡할 것 같음