fork download
  1. import java.io.BufferedReader
  2. import java.io.InputStreamReader
  3. import kotlin.math.roundToInt
  4.  
  5. fun main(args: Array<String>) {
  6. var br = BufferedReader(InputStreamReader(System.`in`))
  7. // br 사용 선언
  8. var input: Int = br.readLine().toInt()
  9. // 크기 입력받기
  10. val arr = mutableListOf<Int>()
  11. // 값을 담을 리스트
  12. var everage: Int = 0
  13. // 기본값을 0으로 줌
  14.  
  15. if (input != 0) {
  16. // 입력이 0이 아닐경우 실행
  17.  
  18. for (i: Int in 0 .. input - 1) {
  19. var RQ: Int = br.readLine().toInt()
  20. // 입력을 받고
  21. arr.add(i, RQ)
  22. // 리스트의 i번째에 그 값을 할당
  23. everage = everage + RQ
  24. // everage의 값을 기존값 + RQ로 지정
  25. }
  26.  
  27. var min: Int = arr[0]
  28. // 일단, 기본값을 arr[0]으로 지정하기
  29. var j: Int = 0
  30.  
  31. if (arr.size > 1) {
  32. // 값이 하나일 경우 이 조건문 진입차단
  33. while (true) {
  34. // 무한반복
  35. if (arr[0] == arr[1]) {
  36. // 만약 0번째 값과 1번째 값이 같은경우
  37. break
  38. // 반복문 탈출
  39. }
  40. if (arr[j] != arr[j + 1]) {
  41. // j번째값과 j + 1번째 값이 다른경우
  42. min = arr[j]
  43. // min의 값을 j로 지정
  44. break
  45. // 반복문 탈출
  46. }
  47. j++
  48. }
  49. }
  50.  
  51. arr.sort()
  52. // 모든 값을 정렬해줌
  53.  
  54. var k: Int = arr.size - 2 // k의 값 지정,
  55. if (arr.size > 1 && arr[k - 1] == arr[k] && arr[k] == arr[k + 1]) {
  56. // 상기 조건을 모두 만족시킨다면
  57. min = arr[k - 1]
  58. // min의 값을 지정(수가 5,5,4,4,3,3,-1로 주어진 경우)
  59. }
  60.  
  61. println((everage.toDouble() / input.toDouble()).roundToInt())
  62. // 평균 (반올림을 해줌)
  63. println(arr[arr.size / 2])
  64. // 중앙값
  65. println(min)
  66. // 위에서 지정해준 최빈값
  67. println(arr[input - 1] - arr[0])
  68. // 범위
  69. }
  70. }
Success #stdin #stdout 0.12s 34676KB
stdin
5
1
1
2
2
3
stdout
2
2
1
2