개발에 AtoZ까지

[JAVA][D3] 10505. 소득 불균형 본문

코딩테스트 준비/SWEA

[JAVA][D3] 10505. 소득 불균형

AtoZ 개발자 2021. 3. 6. 00:31
반응형

문제 

통계 자료를 처리할 때, 평균이 전체 집단의 특징을 꼭 잘 표현하는 것은 아니다.

예를 들어, 대다수의 국가에서는 적은 수의 사람이 국가 전체 소득의 꽤 많은 부분을 차지하기 때문에, 해당 국가의 평균 소득은 보통 사람들의 소득보다 높은 경우가 많다.

당신은, n명의 사람의 소득이 주어졌을 때 이 중 평균 이하의 소득을 가진 사람들의 수를 출력해야 한다.


[입력]
첫 번째 줄에 테스트 케이스의 수 T가 주어진다.

이후 T개의 테스트 케이스에 대해 각각 두 줄로 주어진다.

첫 번째 줄에는 정수의 개수 N 이 주어지며(1 ≤ N ≤ 10,000), 두 번째 줄에는 각 사람의 소득을 뜻하는 N개의 양의 정수가 주어진다. 이 정수들은 각각 1 이상 100,000 이하이다.
 

[출력]

각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고,

각 테스트 케이스마다 한 줄씩 평균 이하의 소득을 가진 사람들의 수를 출력한다.

예시

 

풀이

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;

class Solution
{
	public static void main(String args[]) throws Exception
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int T = Integer.parseInt(br.readLine());

		for(int test_case = 1; test_case <= T; test_case++)
		{
        	//주어진 숫자의 개수
			int length = Integer.parseInt(br.readLine());
			String[] str = br.readLine().split(" ");
            //총합
			int sum = 0;
            //평균보다 낮은 수들의 개수
			int count=0;
            //평균구하기
			for(String s : str) {
				int num = Integer.parseInt(s);
				sum+=num;
			}
			int result = Math.round(sum/str.length);
			for(String s: str) {
				if(Integer.parseInt(s)<=result) {
					count++;
				}
			}
			System.out.println("#"+test_case+" "+count);
		}
	}
}
반응형
Comments