Deff_Dev

[프로그래머스] 명예의 전당 (1) (C++) 본문

코딩테스트/프로그래머스

[프로그래머스] 명예의 전당 (1) (C++)

Deff_a 2024. 3. 12. 11:49
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

 

 

풀이

#include <string>
#include <vector>
#include <algorithm>
// https://school.programmers.co.kr/learn/courses/30/lessons/138477
using namespace std;

vector<int> solution(int k, vector<int> score) {
    vector<int> answer;
    vector<int> hallOfFame; // 명예의 전당
    
    for(int i = 0; i < score.size(); i++){
       // 명예의 전당 점수의 갯수가 k 이하 일때, 명예의 전당의 최소 점수가 score[i] 보다 작을 때 
       if(hallOfFame.size() == k && hallOfFame[0] < score[i]){
            hallOfFame[0] = score[i]; // 명예의 전당 점수 교체
        }
        else if(hallOfFame.size() < k){
            hallOfFame.push_back(score[i]); // 명예의 전당 점수 추가
        }

        // 오름차순 정렬
        sort(hallOfFame.begin(), hallOfFame.end());
        
        // 최소 점수 추가
        answer.push_back(hallOfFame[0]);
    }    
    return answer;
}