●문제

●입출력

문제해독 : score 배열이 일차가 순차적으로 증가됨에 따라 result배열에는 k의 배열수 까지만 수치가 누적됨
순차적으로 증가될때 score에서 전 score 배열보다 클때만 배열에 추가해준다
일수만큼 차곡차곡 쌓이는 값을 도출하되 가장 작은 수만 나오게해야함
내가 푼 방법 : for문으로 배열을 쌓되 sort(begin, end, greater<>())로 오름차순으로 검색을 해서 가장 큰수만 넣고
그중에서 가장 작은수를 도출
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(int k, vector<int> score)
{
//배열의 k갯수인데 항상 for문에서의 전의 [i]보다 크면 추가
//[i]보다 작으면 추가하지않음
//k배열중에 가장작은 [i]출력
vector<int> answer;
vector<int> temp;
for (int i = 0; i < score.size(); ++i)
{
temp.push_back(score[i]);
//오름차순을 해서 명예의 전당에 큰수를 넣어줌
sort(temp.begin(), temp.end(), greater<>());
//만약 k전당 배열수보다 많으면 가장 큰수들만 넣음
if (temp.size() > k)
{
temp.erase(temp.begin() + k, temp.end());
}
//가장 작은 수만 도출
answer.push_back(temp[temp.size() - 1]);
}
return answer;
}
레벨 : lv1
점수 : 1점
'C++ 프로그래머스 > Sort' 카테고리의 다른 글
| 프로그래머스(C++) - H-Index (1) | 2025.08.19 |
|---|---|
| 프로그래머스(C++) - 가장 큰 수 (0) | 2025.08.18 |
| 프로그래머스(C++) - k번째 수 (0) | 2025.08.18 |
| Algorithm - Sorting (0) | 2025.08.13 |
