받은 배열 중, 가장 작은 수를 제거한 베열을 출력하는 방식이다. 나는 for문으로 제일 작은 수를 찾고 작은 수를 빼는 방식을 사용하였다. 문제를 풀고 찾아보니 배열의 최소값을 찾는 함수가 있단 걸 발견...
첫 for문은 최소 값을 찾는 거고 두 번째 for문은 최소 값을 제외한 배열을 answer에 집어넣는 것이다. 최소값이 들어간 인덱스가 나오면 삽압하지 않고 지나가도록 continue를 사용했다. 마지막 if문은 만일 배열에 아무것도 없을 경우 -1넣어주는 것이다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> arr) {
int min = arr[0];
int k = 0;
vector<int> answer;
for(int i = 0; i < arr.size(); i++){
if(arr[i] < min){
min = arr[i];
k = i;
}
}
for(int j = 0; j < arr.size(); j++){
if(j == k){
continue;
}
answer.push_back(arr[j]);
}
if(answer.empty()){
answer.push_back(-1);
}
return answer;
}
슬슬 당 떨어진다...