문제
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);
}
}
}
'Problem Solving > SWEA' 카테고리의 다른 글
[SWEA] 4751. 다솔이의 다이아몬드 장식 (0) | 2020.02.21 |
---|---|
[SWEA] 4676. 늘어지는 소리 만들기 (0) | 2020.02.21 |
[SWEA] 4406. 모음이 보이지 않는 사람 (0) | 2020.02.21 |
[SWEA] 4047. 영준이의 카드 카운팅 (0) | 2020.02.21 |
[SWEA] 3499. 퍼펙트 셔플 (0) | 2020.02.21 |
댓글