프로그래머스 Lv.1 코딩테스트

[프로그래머스 Lv.1] 제일 작은 수 제거하기

하다블 2022. 2. 16. 19:51
반응형

문제는 다음과 같습니다.

코딩테스트 연습 - 제일 작은 수 제거하기 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 제일 작은 수 제거하기

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1

programmers.co.kr

풀이 코드는 다음과 같습니다.

#include <string>
#include <vector>
using namespace std;

vector<int> solution(vector<int> arr) {
    vector<int> answer;
    int tmp = arr[0];
    int check=0;
    for(int i{0};i<arr.size();i++)
    {
        if(tmp>=arr[i])
        {
            tmp=arr[i];
            check=i;
        }
    }
    arr.erase(arr.begin()+check);
    if(arr.empty())
    {
        arr.push_back(-1);
    }
    answer=arr;
    return answer;
}

처음에는 정렬을 해서 맨 앞에 위치한 값을 빼려고 하다가 순서가 달라지기 때문에 가장 기본적인 방법으로 하나씩 찾아보면서 가장 작은 값을 찾는 방법으로 찾았습니다.

이후 특정 순번에 있는 원소를 빼기 위해 순번 체크를 위한 check 변수를 선언하여 빼주었고

만약 벡터가 비어있다면 -1을 추가하여 대입하였습니다.

반응형