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 사용법을 잘 기억해두자.