Jakorithm
article thumbnail
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