문제 링크
난이도 : 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는 끝이 포함되지 않음을 기억하기