문제 링크
난이도 : Lv. 0

문제 내용

정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요.

입력

[12, 4, 15, 46, 38, 1, 14]

출력

[1, 4, 12, 14, 15]

문제 분석

순회하면서 제일 작은 값을 입력 리스트에서 지우고 정답부분에 뒤에 넣음 ⇒ 스택

작성한 코드

#include <string>
#include <vector>
 
using namespace std;
 
vector<int> solution(vector<int> num_list) {
    vector<int> answer;
    while (answer.size() < 5) {
        int min = 101;
        int min_idx = 0;
        for (int i = 0 ; i < num_list.size() ; i++) {
            if (num_list[i] < min) {
                min = num_list[i];
                min_idx = i;
            }
        }
        answer.push_back(min);
        num_list.erase(num_list.begin() + min_idx);
    }
    return answer;
}

벡터구조 처음 써봐서 검색해봄

참고 자료 : https://godog.tistory.com/entry/C-vector-생성-및-삽입-삭제

우수 코드 분석

#include <bits/stdc++.h>
 
using namespace std;
 
vector<int> solution(vector<int> num_list) {
    sort(num_list.begin(), num_list.end());
    return {num_list.begin(), num_list.begin() + 5};
}

include <bits/stdc++.h>이 뭔가 봤더니 표준 라이브러리 대부분을 포함하는 GCC 제공 비표준 헤더파일이라고 함.

algorithm.h 안에 있는 sort 함수는 string 타입도 지원한다고 함 (사전식)

{시작, 끝} ← 괄호를 이용해 만드는 vector는 끝이 포함되지 않음을 기억하기