2587번: 대표값2백준/단계별로 풀어보기2023. 6. 5. 13:19
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/2587
언어 : Kotlin
문제 설명 :
어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + 30) / 5 = 170 / 5 = 34가 된다.
평균 이외의 또 다른 대표값으로 중앙값이라는 것이 있다. 중앙값은 주어진 수를 크기 순서대로 늘어 놓았을 때 가장 중앙에 놓인 값이다. 예를 들어 10, 40, 30, 60, 30의 경우, 크기 순서대로 늘어 놓으면
10 30 30 40 60
이 되고 따라서 중앙값은 30이 된다.
다섯 개의 자연수가 주어질 때 이들의 평균과 중앙값을 구하는 프로그램을 작성하시오.
- 첫째 줄부터 다섯 번째 줄까지 한 줄에 하나씩 자연수가 주어진다. 주어지는 자연수는 100 보다 작은 10의 배수이다.
- 첫째 줄에는 평균을 출력하고, 둘째 줄에는 중앙값을 출력한다. 평균과 중앙값은 모두 자연수이다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 128MB
입출력 예 :
입력 | 출력 |
10 40 30 60 30 |
34 30 |
풀이 :
import java.io.*
fun main(args: Array<String>) {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
var arr = emptyArray<Int>()
repeat(5) {
arr += br.readLine().toInt()
}
bw.appendLine("${arr.average().toInt()}")
bw.appendLine("${checkMedian(arr)}")
bw.flush()
bw.close()
}
fun checkMedian(arr: Array<Int>): Int {
val sorted = arr.sorted()
val size = arr.size
return if (size % 2 != 0) {
sorted[size / 2]
} else {
sorted[(size - 1) / 2] / 2
}
}
'백준 > 단계별로 풀어보기' 카테고리의 다른 글
2751번: 수 정렬하기 2 (0) | 2023.06.05 |
---|---|
25305번: 커트라인 (0) | 2023.06.05 |
2750번: 수 정렬하기 (0) | 2023.06.05 |
2839번: 설탕 배달 (1) | 2023.06.02 |
1436번: 영화감독 숌 (0) | 2023.06.02 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!