Unreal5 공부/TIL

2026/04/03 TIL

anna59 2026. 4. 3. 21:08

 

오늘의 목표

  • 아침 코드카타
  • 게임 업계 채용 공고 확인

 


 

코드카타

[문제] 제일 작은 수 제거하기

 

<풀이> 가장 작은 수를 찾아내는 min과 erase-remove idiom를 사용해서 가장 작은 수를 제거하고 남은 부분을 반환하려고 한다.

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> arr) {
    vector<int> answer;
    
    int minNum = *min(arr.begin(), arr.end());
    arr.erase(remove(arr.begin(), arr.end(), minNum), arr.end());
    
    for(int i = 0; i < arr.size(); ++i){
        answer.push_back(arr[i]);
    }
    
    if(arr.empty()){
        answer.push_back(-1);
    }
    return answer;
}

 

*오류

그런데 min을 어떻게 사용하는지 기억이 안나서, 최솟값 대신 최댓값을 반환하는 코드가 되었다.

 

여기서부터는 검색으로 min 사용법을 다시 알아보았다.

 

STL <algorithm>

min_element 

사용법:

auto min = *min_element(vec.begin(), v.end());

 

[수정된 코드]

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> arr) {
    vector<int> answer;
    
    int min = *min_element(arr.begin(), arr.end());
    arr.erase(remove(arr.begin(), arr.end(), min), arr.end());
    
    for(int i = 0; i < arr.size(); ++i){
        answer.push_back(arr[i]);
    }
    
    if(arr.empty()){
        answer.push_back(-1);
    }
    return answer;
}

 

min_element 사용법을 잘 기억해두자.