728x90
문제
https://www.acmicpc.net/problem/1546
1546번: 평균
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보
www.acmicpc.net
코드
첫 번째 줄에 입력의 개수 n, 두 번째 줄에는 n개의 점수가 공백(" ")을 기준으로 주어진다.
이때 가장 큰 수 m을 구하여 입력받은 모든 정수에 대해 "점수 / m * 100"을 계산한 뒤 평균을 출력하는 문제다.
fun main() {
val n = readln().toInt()
val score = readln().split(" ").map { it.toDouble() }.toDoubleArray()
val m = score.max()
repeat(n) {
score[it] = score[it] / m * 100
}
println(score.average())
}
- 정수 n을 입력받는다.
- n개의 점수를 입력받아 공백(" ")을 기준으로 나누고 각 점수를 Double 타입으로 받아 Double 타입의 Array로 초기화한다.
- max() 함수를 통해 score 배열의 가장 큰 값을 구한다.
- n번 반복하여 score[it]에 score[it] / m * 100을 계산하여 저장한다.
- average() 함수를 통해 score 배열의 평균을 출력한다.
728x90