본문 바로가기
알고리즘/프로그래머스

알고리즘(C++) / 프로그래머스 level 1 : 제일 작은 수 제거하기

by clean_h 2021. 9. 15.
728x90

level 1 : 제일 작은 수 제거하기

https://programmers.co.kr/learn/courses/30/lessons/12935?language=cpp 

 

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

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

programmers.co.kr

 

코드

//프로그래머스 제일 작은 수 제거하기
#include <iostream>
#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(find(arr.begin(), arr.end(), min)); //제거

    if (arr.empty()) //사이즈가 0일 때
        arr.push_back(-1);
    return arr;
}

int main() {
    vector<int> arr = { 4,3,2,1 };
    solution(arr);
    return 0;
}

 

설명

min_element함수로 가장 작은 수를 찾는다.

벡터의 erase 함수로 가장 작은 수의 위치를 제거한다.

제거한 arr가 비어있다면 -1을 채워서 arr을 return 한다.

 

고찰

걸린시간 : 10분

min_element, max_element가 존재한다는 사실은 알았지만 어떻게 사용해야 하는지는 검색하여 알아보았다. 다음과 같은 함수들을 검색하지 않고 바로 사용할 수 있도록 문제를 많이 풀어보도록 해야할 거 같다.

728x90

댓글