260114 TIL - Unreal C++ 5일차
2026. 1. 14. 21:19ㆍ언리얼 7기 본캠프
오늘도 코드카타와 좋은 승부를 겨룸. 특히 코드카타 하면서 처음으로 시간 복잡도에 대해 생각해보게 되었음. 작성한 코드가 동작은 하는데 시간복잡도때문에 정답이 아니라서 코드를 다 뜯어서 다시 짜야했음...
//비효율적인 코드. 길이를 비교하고 erase하고 for 계속 돌리고...
// X Y의 자릿수가 300만까지 갈 수 있다는걸 간과한 코드였음
string solution(string X, string Y) {
string answer = "";
vector<char> vec;
for(char x : X){
for(int i = 0; i < Y.length(); i++){
if (x == Y[i]){
vec.push_back(x);
Y.erase(i, 1);
break;
}
}
}
sort(vec.rbegin(), vec.rend());
if(!vec.empty()&&vec[0] == '0') return "0";
for(char c : vec){
answer.push_back(c);
}
if(answer == "") return "-1";
return answer;
}
//개선한 코드. 0~9의 수를 저장할 벡터를 만들고 for문으로 수를 저장
//이후 이를 비교하며 큰 수부터 내려와서 수를 만들고 합산
//'0'을 더하거나 빼는걸로 수를 char나 int로 바꾸는거 슬슬 적응할때도 됐는데...
string solution(string X, string Y) {
string answer = "";
vector<int> X_count(10);
vector<int> Y_count(10);
for(char x : X){
X_count[x - '0']++;
}
for(char y : Y){
Y_count[y - '0']++;
}
for(int i = 9; i >= 0; i--){
if(X_count[i] == 0 || Y_count[i] == 0) continue;
while(X_count[i] > 0 && Y_count[i] > 0){
if(i == 0 && answer == ""){
answer = "0";
break;
}
answer.push_back((char)(i + '0'));
X_count[i] -= 1;
Y_count[i] -= 1;
}
}
if(answer == "") return "-1";
return answer;
}
이후 1주차 강의를 쭈욱 복습하며 6번과제의 기반을 만들기 시작함. 액터 하나하나 만드는데 공이 제법 많이 들어서 일전의 언리얼로 했던 블루프린트 과제보다 시간이 훨씬 많이 들 것 같아서 과제를 최대한 빨리 마무리해야겠다 싶었음
아직 코드도 맵 제작도 진행중이기 때문이 맛보기 이미지만 보여주고 오늘은 마무리함

'언리얼 7기 본캠프' 카테고리의 다른 글
| 260116 TIL - Unreal C++ 7일차, 6번 과제 제출 (0) | 2026.01.16 |
|---|---|
| 260115 TIL - Unreal C++ 6일차 (1) | 2026.01.15 |
| 260113 - Unreal C++ 4일차 + 개인 프로젝트 (0) | 2026.01.13 |
| 260112 TIL - Unreal C++ 3일차 (0) | 2026.01.12 |
| 260109TIL - Unreal C++ 2일차 (0) | 2026.01.09 |