https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWd7sgDatsMDFAUh
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제 설명 : 성수의 실력이 A라고 할 때, 수준이 M인 강좌를 시청하고 나면 성수의 실력은 (A+M)/2가 된다. 즉, 성수는 자신이 보는 강좌가 좋은 지 아닌지 판단하지 않고 그대로 강좌를 받아들이기 때문에, 실력보다 낮은 수준의 강좌를 보면 실력이 낮아질 수 있다. 현재 성수는 아직 아무런 실력이 없다. 즉 실력이 0이다. 성수는 볼 수 있는 강좌 총 N개 찾았고 시간 문제상 이 중에서 K개를 적절한 순서로 선택해 한 번씩 시청하려고 한다. 성수가 같은 강좌를 두 번 이상 보는 일은 없다고 할 때, 성수가 가질 수 있는 실력의 수치는 최대 몇인지 구하는 프로그램을 작성하라. |
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
public class Solution{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T, N, K;
int[] M;
T = sc.nextInt();
for (int tc = 1; tc <= T; tc++) {
N = sc.nextInt();
K = sc.nextInt();
M = new int[N];
for (int i = 0; i < N; i++) {
M[i] = sc.nextInt();
}
Arrays.sort(M);
//System.out.println(Arrays.toString(M));
double answer = 0;
for (int i = N-K; i < N; i++) {
answer = (answer + M[i])/2;
}
System.out.printf("#"+tc+" "+"%.6f", answer);
System.out.println();
}
}
}
'ALGORITHM > 프로그래머스 | 백준 | 삼성 | 카카오' 카테고리의 다른 글
[프로그래머스] 124 나라의 숫자 (0) | 2020.06.18 |
---|---|
[프로그래머스] 가장 큰 수 (0) | 2020.05.18 |
[SWEA] 6782. 현주가 좋아하는 제곱근 놀이 (0) | 2020.05.17 |
[SWEA] 5215. 햄버거 다이어트 (0) | 2020.05.17 |
[백준] 10974번 모든 순열 (0) | 2020.05.17 |