본문 바로가기
Problem Solving/SWEA

[SWEA] 4466. 최대 성적표 만들기

by 테리는당근을좋아해 2020. 2. 21.

문제

n개의 성적이 입력되었을 때, k개의 성적을 뽑아 총합 출력한다. 이 때, k개의 성적 총합의 최댓값을 구하는 문제

 

풀이방법

그리디 알고리즘으로 입력된 성적을 내림차순으로 정력하고 앞에서 부터 k개의 성적을 뽑아 총합을 출력한다.

 

소스코드

package samsung;

import java.util.*;

public class s_4466 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int test = sc.nextInt();
		for(int t = 1; t <= test; t++) {
			int n = sc.nextInt();
			int k = sc.nextInt();
			ArrayList <Integer> a = new ArrayList();
			
			for(int i = 0; i < n; i++) {
				int tmp = sc.nextInt();
				a.add(tmp);
			}
			
			Collections.sort(a, Collections.reverseOrder());
			int sum = 0;
			for(int i = 0; i < k; i++) {
				sum += a.get(i);
			}
			System.out.println("#" + t + " " + sum);
		}
	}
}

 

댓글