본문 바로가기
알고리즘/문제

[codeground] Practice. 3. 시험 공부

by 코드 이야기 2020. 8. 26.
728x90

 

문제의 핵심은 n개의 숫자 중에서 가장 큰 k개의 합을 구하는 것

 

정렬을 해서 뒤부터 k개를 골라 더하면 되는 간단한 문제이다.

 

 

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int Answer;

int main()
{
	int T, test_case;
	int n, k;
	vector<int> arr;

	cin >> T;
	for (test_case = 0; test_case < T; test_case++) {

		Answer = 0;
		
		cin >> n >> k;
		arr.assign(n, 0);
		for (int i = 0; i < n; i++) {
			cin >> arr[i];
		}

		sort(arr.begin(), arr.end());

		for (int i = n - 1; i >= n - k; i--) {
			Answer += arr[i];
		}

		cout << "Case #" << test_case + 1 << endl;
		cout << Answer << endl;
	}

	return 0;
}

n의 입력 범위가 정해지지 않아 vector를 이용했다.

 

 

728x90

댓글