Algorithm/Programmers(c++)
[c++][프로그래머스] 제일 작은 수 제거하기
kim-hasa
2021. 8. 5. 19:23
https://programmers.co.kr/learn/courses/30/lessons/12935
코딩테스트 연습 - 제일 작은 수 제거하기
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1
programmers.co.kr
가장 작은 수를 제거하고 배열에 넣는 문제입니다.
가장 먼저 사이즈가 1이라면 제거 후 빈 배열이 되므로 -1을 리턴해줍니다.
그렇지 않다면 가장 작은 숫자를 찾은 후, 그 숫자를 제외한 나머지 숫자를 배열에 넣습니다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> arr) {
vector<int> answer;
if(arr.size() == 1) // 사이즈가 1인 배열 즉 제거하면 빈 배열이 되는 경우
answer.push_back(-1);
else
{
int small = arr[0]; // 가장 작은 수 찾는 변수
for(int i=1; i<arr.size(); i++)
{
if(arr[i] < small)
{
small = arr[i]; // 가장 작은 수 찾기
}
}
for(int i=0; i<arr.size(); i++)
{
if(arr[i] != small) // 가장 작은 수 제외하고 배열에 넣기
{
answer.push_back(arr[i]);
}
}
}
return answer;
}