두 번째 들어오는 값으로 " " 로 split하여, 해당 숫자를 double로 파싱 한 배열을 만들어둔다. 그리고 이 배열의 최댓값을 구해둔다.
배열을 회전하며 주어진 식 (해당 값)/(최댓값) * 100으로 계산한 값을 더한다.
(앞서, 배열을 double로 파싱하는데, 이 때 int로 배열을 파싱하면 배열 내 값도 int, maximize도 int로 된다. int는 소수점을 제공하지 않는다. 따라서 주어진 식으로 계산하면 해당 값이 최댓값보다 작기 때문에 나누면 0이 된다.)
이 더한 값에 첫 줄에 구해둔 전체과목의 갯수를 나누면 결과가 나온다.
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main(args: Array<String>) {
question1546()
}
fun question1546() {
var reader = BufferedReader(InputStreamReader(System.`in`))
var writer = BufferedWriter(OutputStreamWriter(System.out))
var addGrades = 0.0
var number = reader.readLine().toInt()
var grades = reader.readLine().split(" ").map { it.toDouble() }
var max = grades.max()
grades.forEach {
addGrades += it / max * 100.0
}
writer.write("${addGrades / number}")
writer.flush()
}