풀이방법
사용된 것:
수학
구현
정렬
2023.09.20
의견의 개수 N이 0이라면, 0을 출력하고 프로그램을 종료한다.
의견의 개수 N이 1 이상이라면, 다음을 수행한다.
- N의 0.15배를 계산하여 이를 반올림한다. 이 결과를 M이라 하자.
- 모든 의견을 오름차순으로 정렬한 배열에서, 인덱스 M부터 N-M-1까지를 더한 후, 그 값을 2M으로 나눈 후 반올림한다.
코드
Java(2023.09.20)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader (new InputStreamReader (System.in));
// 난이도 의견의 개수 읽어오기
Integer n = Integer.parseInt(br.readLine());
/*
* 의견이 0개인 경우
*/
if(n == 0) {
// 0을 출력하고 프로그램 종료
System.out.println(0);
System.exit(0);
}
/*
* 의견이 1개 이상인 경우
*/
// 모든 의견 값 읽어와 저장, 오름차순 정렬
Integer[] nums = new Integer[n];
for(int i=0; i<n; i++) nums[i] = Integer.parseInt(br.readLine());
Arrays.sort(nums);
// n의 15%를 계산 후 반올림
Double calc = n * 0.15;
Integer m = (int)Math.round(calc);
// m을 이용하여 절사평균 도출
Integer sum = 0;
for(int i=m; i<n-m ; i++) sum += nums[i];
Double avg = (double)sum/(n-2*m);
System.out.print(Math.round(avg));
}
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
#11723 : 집합 (0) | 2023.09.20 |
---|---|
#5358 : Football Team (0) | 2023.09.05 |
#11279 : 최대 힙 (0) | 2023.05.17 |
#14244 : 트리 만들기 (0) | 2023.05.15 |
#24416 : 알고리즘 수업 - 피보나치 수 1 (0) | 2023.04.05 |