C++/programmers 코딩테스트(level 1) C++

[C/C++] programmers Level 1 명예의 전당 (1)

CE : 하랑 2023. 10. 12. 10:19

 

 

 

코드

 

#include <vector> // erase()
#include <algorithm> // sort()

using namespace std;

vector<int> solution(int k, vector<int> score) {
    vector<int> answer;
    vector<int> num;
    
    for(int i=0;i<score.size();i++){
        num.push_back(score[i]);
        sort(num.begin(),num.end()); // 오름차순 정렬
        
        if(num.size()>k){ 
            num.erase(num.begin()); 
        }
        
        answer.push_back(*num.begin());
    }
    
    return answer;
}

// erase 함수를 통해 vector의 특정 값을 삭제한다고 할 때, 해당 값이 삭제가 되고 그만큼 vector의 size가 줄어든다.
// 해당 값이 지워지면 container가 모든 요소를 새 위치로 재배치한다. 그렇기 때문에 size는 줄어도, capacity는 줄어들지 않는다.