[문제]
[풀이 방법]
입력 받은 수들을 올림차순 혹은 내림차순으로 소트하고 맨 앞과 맨 뒤 원소를 제외한 수들을 모두 더해 평균을 구합니다.
평균은 Double로 해야 소수점 첫번째 자리에서 반올림이 가능하기 때문에 int가 아닌 Double로 선언한 후 평균을 더할 때 역시 int가 아닌 Double 형으로 바꾸어서 계산해야지 옳은 결과를 얻을 수 있습니다.
소수점 첫번째 자리에서 반올림하는 연산은 Math.round로 손쉽게 해결할 수 있습니다.
for (int k = 0; k < T; k++) {
sf.append("#" + (k+1) + " ");
st = new StringTokenizer(br.readLine());
int[] nums = new int[COUNT+1];
for (int i = 1; i <= COUNT; i++)
nums[i] = Integer.parseInt(st.nextToken());
Arrays.sort(nums);
int sum = 0;
for (int i = 1; i <= COUNT; i++) {
if (i == 1 || i == COUNT) continue;
sum += nums[i];
}
double avg = Math.round(sum / (double)(COUNT-2));
sf.append(Math.round(avg) + "\n");
}
'SWEA > D2' 카테고리의 다른 글
[SWEA 1979][D2][JAVA] 어디에 단어가 들어갈 수 있을까 (0) | 2019.05.02 |
---|---|
[SWEA 1976][D2][JAVA] 시각덧셈 (0) | 2019.05.02 |
[SWEA 1983][D2][JAVA] 조교의 성적 매기기 (0) | 2019.05.01 |
[SWEA 1859][D2][JAVA] 백만장자 프로젝트 (0) | 2019.04.30 |
[SWEA 1986][D2][JAVA] 지그재그 숫자 (0) | 2019.04.30 |