알고리즘 문제풀이/백준

#18110 : solved.ac

모항 2023. 9. 20. 14:28

풀이방법

사용된 것:

수학

구현

정렬

 

 

 

 

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