티스토리 뷰

728x90

 

https://www.acmicpc.net/problem/2108

 

2108번: 통계학

첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다.

www.acmicpc.net


  • 해설 : 
  1. 산술평균 : N개의 수들의 합을 N으로 나눈 값
  2. 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값
  3. 최빈값 : N개의 수들 중 가장 많이 나타나는 값
  4. 범위 : N개의 수들 중 최댓값과 최솟값의 차이

N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오.

 

 

 


  • 풀이 :

쉬운 구현 문제이다. 각 개념에 대해 연산을 진행하면 된다.

 

 

 


  • 소스코드 : 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import sys
from collections import Counter
input = sys.stdin.readline
 
if __name__ == "__main__":
    N = int(input())
    nums = sorted([int(input()) for _ in range(N)])
    print(round(sum(nums)/N))
    print(nums[len(nums)//2])
    check = Counter(nums).most_common()
    if len(check) > 1:
        if check[0][1== check[1][1]:
            print(check[1][0])
        else:
            print(check[0][0])
    else:
        print(check[0][0])
    print(max(nums)-min(nums))
cs
320x100
댓글
© 2022 WonSeok, All rights reserved