# 12935 제일 작은 수 제거하기
문제 정리
가장 작은 수를 제거한 배열을 return
생각해보기
배열 순회하면서 제일 작은 값 나오면 그 인덱스 저장하고 (min) 그 인덱스를 erase.
근데 마지막에 배열 검사해서 size가 0이면 push_back(-1)하고 리턴
코드 쓰기
내 풀이
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> arr) {
vector<int> answer;
int min = 2147483647;
int idx = 0;
for(int i=0; i<arr.size(); i++){
if(arr[i] < min){
idx = i;
min = arr[i];
}
}
arr.erase(arr.begin() + idx);
if (arr.size() == 0){
arr.push_back(-1);
}
for(int i=0; i<arr.size(); i++){
answer.push_back(arr[i]);
}
return answer;
}
풀고 나서 알게된 것
algorithm 헤더에 min_element 쓰면 최소값을 바로 찾을 수 있고,
find 쓰면 그 배열에 해당 element가 어딨는지 바로 찾을 수 있군..
vector<int> answer=arr;
요렇게 하면 나처럼 다시 answer.push_back(arr[i]) 할 필요가 없네!