티스토리 뷰

문제
 

4344번: 평균은 넘겠지

문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자

www.acmicpc.net

풀이
package main

import (
	"bufio"
	"fmt"
	"math"
	"os"
)

func main() {
	var c int
	reader := bufio.NewReader(os.Stdin)
	writer := bufio.NewWriter(os.Stdout)
	fmt.Fscanln(reader, &c)
	defer writer.Flush()

	for i := 0; i < c; i++ {
		var n int
		fmt.Fscanf(reader, "%d ", &n)

		var scores = make([]float64, n)
		var sum, avg float64
		for j := 0; j < n; j++ {
			fmt.Fscanf(reader, "%f ", &scores[j])
			sum += scores[j]
		}
		avg = sum / float64(n)

		var proportion float64
		for _, val := range scores {
			if val > avg {
				proportion += (1 / float64(n))
			}
		}
		fmt.Fprintf(writer, "%.3f%s\n", math.Round(proportion*100000)/1000, "%")
	}
}
728x90

'dev > algorithm' 카테고리의 다른 글

BOJ / 4673번 / 셀프 넘버 [Golang]  (0) 2020.04.17
BOJ / 15596번 / 정수 N개의 합 [Golang]  (0) 2020.04.16
BOJ / 8958번 / OX퀴즈 [Golang]  (0) 2020.04.14
BOJ / 1546번 / 평균 [Golang]  (2) 2020.04.13
BOJ / 3052번 / 나머지 [Golang]  (0) 2020.04.12
댓글