N

(SWEA c++)4466. 최대 성적표 만들기 본문

SW Expert Academy

(SWEA c++)4466. 최대 성적표 만들기

naeunchan 2020. 11. 11. 09:23
728x90
반응형

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWOUfCJ6qVMDFAWg&categoryId=AWOUfCJ6qVMDFAWg&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

N개의 성적 중 K개를 골라 최댓값을 구하면 된다.

우선 N개의 성적을 저장하는 벡터를 생성하여 값을 저장한다.

그리고 sort() 함수를 이용해 내림차순으로 정렬을 한다.

마지막에는 ans에 0 ~ K 인덱스의 값을 차례대로 저장하면 답을 구할 수 있다.

 

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

bool desc(int a, int b)
{
    return a > b;
}

int main(void)
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    int t;
    cin >> t;
    
    for(int tc = 1; tc <= t; tc++)
    {
        vector<int> v;
        int ans = 0, N, K;
        
        cin >> N >> K;
        
        for(int i = 0; i < N; i++)
        {
            int tmp;
            cin >> tmp;
            v.push_back(tmp);
        }
        
        sort(v.begin(), v.end(), desc);
        
        for(int i = 0; i < K; i++)
            ans += v[i];
        
        cout << "#" << tc << " " << ans << endl;
    }
    return 0;
}
728x90
반응형