코딩테스트

[BOJ/4434문제] 소수점 자릿수

쵱니 2020. 10. 4. 00:10

문제 : www.acmicpc.net/problem/4344

 

4344번: 평균은 넘겠지

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

www.acmicpc.net

내 코드 

import java.util.*

fun main() {
	val sc = Scanner(System.`in`)
	val n = sc.nextLine().toInt()
	var arr: List<String>
	var sum: Int
	var ave: Double
	var stu: Int
	for (i in 1..n) {
		arr = sc.nextLine().split(" ")

		ave = 0.0
		sum = 0
		for (j in 1..arr[0].toInt()) {
			sum += arr[j].toInt()
		}
		ave = sum / arr[0].toDouble()

		stu = 0
		for (j in 1..arr[0].toInt()) {
			if (ave < arr[j].toInt())
				stu++
		}
		System.out.println(String.format("%.3f", stu * 100 / arr[0].toDouble()) + "%")
	}
}

뛰어난 코드

fun main() {
    repeat(readLine()!!.toInt()) {
        val list = readLine()!!.split(" ").drop(1).map { it.toInt() }
        val n = list.count().toDouble()
        println("${"%.3f".format(100 * list.count { it > list.average() } / n)}%")
    }
}

간결하고 더 깔끔하다.