본문 바로가기

BOJ/정렬

BOJ : 2108 통계학 (파이썬)

728x90

소스코드

import sys
from collections import Counter

n = int(sys.stdin.readline())

lst = []

for i in range(n) :
    num = int(sys.stdin.readline())
    lst.append(num)

lst.sort()

print(round(sum(lst)/n))

middleIndex = n // 2 
print(lst[middleIndex])

chlqls = Counter(lst).most_common()

if len(chlqls) > 1 :
    if chlqls[0][1] == chlqls[1][1] :
        print(chlqls[1][0])
    else :
        print(chlqls[0][0])
else :
    print(chlqls[0][0])

print(max(lst) - min(lst))

풀이

최빈값을 구하는 것이 핵심인 문제 같았습니다.

파이썬의 라이브러리인 Counter 를 사용해서 풀었습니다.

 

Counter  라이브러리는 (해당값,출현한횟수) 로 리스트를 새로 만들어줍니다.

문제

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

 

2108번: 통계학

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

www.acmicpc.net

 

728x90

'BOJ > 정렬' 카테고리의 다른 글

BOJ : 1931 회의실 배정 (JS , nodeJS)  (0) 2023.01.20
BOJ : 11870 좌표압축 (파이썬)  (0) 2022.12.02
BOJ : 1461 도서관 (파이썬)  (0) 2022.11.20
BOJ : 1927 최소힙 (파이썬)  (1) 2022.09.11
BOJ : 20291 파일정리 (파이썬)  (2) 2022.09.10