260310 TIL - 챕터4 멀티플레이어 게임 개발 2일차
2026. 3. 10. 21:29ㆍ언리얼 7기 본캠프
//문자열 압축 문제. 자를 단위를 체크하고, 잘라서 검증하는 과정을 거친 뒤
//동일하면 카운트를 누적하고 다르면 카운트에 따라 string을 만들어 누적시키고
//최종적으로 각 케이스별로 가장 작았던 정답을 기록한 후 리턴함
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(string s) {
int answer = 1001;
int length = s.length();
string tocheck;
int curcount = 0;
for(int i = 1; i <= length; i++)
{
tocheck = s.substr(0, i);
curcount = 1;
string result = "";
for(int j = i; j < length; j += i)
{
string current = s.substr(j, i);
if (current == tocheck)
{
curcount++;
}
else
{
if (curcount == 1)
{
result += tocheck;
tocheck = current;
}
else
{
string toadd = to_string(curcount) + tocheck;
result += toadd;
tocheck = current;
curcount = 1;
}
}
}
if (curcount == 1)
{
result += tocheck;
}
else
{
string toadd = to_string(curcount) + tocheck;
result += toadd;
}
answer = min(answer, (int)result.length());
}
return answer;
}
오늘은 코드카타 분석을 위주로 적어보려고 하는데, 일단 땅따먹기 문제가 있고, 이 문제를 나는 반복문을 중첩시켜 이런 방식으로 풀었음
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<vector<int> > land)
{
int answer = 0;
for(int i = 1; i < land.size(); i++)
{
for(int j = 0; j < land[i].size(); j++)
{
int prevmax = -1;
for(int k = 0; k < land[i - 1].size(); k++)
{
if (k == j) continue;
prevmax = max(prevmax, land[i - 1][k]);
}
land[i][j] = land[i][j] + prevmax;
}
}
answer = *max_element(land.back().begin(), land.back().end());
return answer;
}
엄밀히 말하면 완전히 최적화된 문제는 아니고, 문제에서 고정된 4열이 아닌 n행 m열이라고 하더라도 대응할 수 있게끔 염두에 두고 짠 코드임(물론 m 숫자가 기하급수적으로 늘어나면 시간이 오버될 수 있지만, 그건 일단 예외로 두고...)
문제는 이제 다른사람 풀이 코드를 참고하려고 코드를 보는데, 보자마자 '이게 뭐지' 싶은게 눈에 바로 하나 들어옴

진짜 극심하게 하드코딩된 방법이었음. 이런식으로 푸는걸 생각해보지 않은건 아니었지만, 아무래도 지금 공부하는 취지와는 맞지 않는것 같아서 위의 내 방식대로 푼건데, 이걸 실제로 보니 속도는 진짜 훨씬 빠르고, 이해도 금방 되는 코드긴 해서 약간 혼란이 왔음. 내 방법이 옳은가, 이 방법이 옳은가?
그래서 튜터님에게 가서 자문을 구했고, 결론은 '내가 할 수 있는 방법으로 풀어라' 였음. 실제로 밑의 코드가 시간복잡도는 훨씬 빠르고 할지언정, 실전에서 이런 코드를 내면 감독관들이 상당히 짜증나할거라고 하심. 실제로 내가 이 코드를 처음 봤을 때의 반응도 '뭐냐 이건' 에 가까웠기 때문에... 어떤 느낌인지 이해할 수 있었음
아무튼 내가 풀 수있는 방법대로 고수하는걸로!
'언리얼 7기 본캠프' 카테고리의 다른 글
| 260312 TIL - 챕터4 멀티플레이어 게임 개발 4일차 (0) | 2026.03.12 |
|---|---|
| 260311 TIL - 챕터4 멀티플레이어 게임 개발 3일차 (0) | 2026.03.12 |
| 260309 TIL - 챕터4 멀티플레이어 게임 개발 1일차 (0) | 2026.03.09 |
| 260306 TIL - 챕터4 시작! (0) | 2026.03.06 |
| 260305 TIL - 챕터3 D-Day (0) | 2026.03.05 |