티스토리 뷰

1984. 중간 평균값 구하기

swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5Pw_-KAdcDFAUq&categoryId=AV5Pw_-KAdcDFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=2&pageSize=10&pageIndex=1

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

import java.util.Scanner;
// 210131
// 1984. 중간 평균값 구하기

public class SWEA1984 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int T = sc.nextInt();

		for (int tc = 0; tc <= T; tc++) {

			String[] arr = sc.nextLine().split(" ");
			if (tc == 0)
				continue;

			int sum = 0;
			int min = 10001;
			int max = 0;
			for (String s : arr) {
				int num = Integer.parseInt(s);
				sum += num;
				if (max < num)
					max = num;
				if (min > num)
					min = num;
			}

			sum -= max;
			sum -= min;
			float avg = (float) sum / 8;
			int avg2 = sum / 8;

			int res = 0;
			if ((avg + 0.5) >= avg2 + 1) {
				res = avg2 + 1;
			} else {
				res = avg2;
			}

			System.out.print("#" + tc + " " + res + "\n");
		} // for

		sc.close();
	} // main
}

 

반올림하여 소수 첫째자리까지 나타내기 위해 %.1f를 사용하는 것 처럼. %.0f로 쓰니까 이상하게 값이 나온다.

그래서 평균 계산을 float형과 (소수점 자리는 버리는) int형 둘 다 구해서. flaot + 0.5 > int+1라면 반올림하였다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함