지나가던 개발자

[Python] 백준 2108번(통계학) 문제 풀이 본문

PS/Python

[Python] 백준 2108번(통계학) 문제 풀이

KwonYongHyeon 2022. 9. 15. 18:10

 

from collections import Counter
import sys

def modefinder(numbers):
    c = Counter(numbers)
    order = c.most_common()
    maximum = order[0][1]

    modes = []
    for num in order:
        if num[1] == maximum:
            modes.append(num[0])
    return modes

nums = []
for i in range(int(sys.stdin.readline())):
    nums.append(int(sys.stdin.readline()))
print(round(sum(nums)/len(nums)))
print(sorted(nums)[len(nums)//2])
m = modefinder(nums)
if len(m) == 1:
    print(m[0])
else:
    print(sorted(m)[1])
print(max(nums)-min(nums))

 

modefinder() 함수는 이 블로그에서 끌어왔다.

 

https://codepractice.tistory.com/71#:~:text=%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9D%84%20%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%B5%9C%EB%B9%88%EA%B0%92,%EC%82%AC%EC%A0%84%20%ED%98%95%EC%8B%9D%EC%9C%BC%EB%A1%9C%20%EB%8F%8C%EB%A0%A4%EC%A4%80%EB%8B%A4.

 

(파이썬) 최빈값 구하기

파이썬을 이용하여 최빈값(mode)를 구하기 위해서는 collections 모듈의 Counter 클래스를 알고 있어야 한다. Counter는 사전(dict) 클래스의 하위 클래스로 리스트나 튜플에서 각 데이터가 등장한 횟수를

codepractice.tistory.com

 

내가 코드를 끌어오는 기준은 이해할 수 있는가 없는가다. 내가 이해할 수 있으면 그냥 끌어온다. 이해할 수 없다면 내가 직접 짜본다. 이건 이해 가능한 코드였다.

 

이건 그냥 문제에 제시된 조건대로만 풀면 되는거라서 그닥 설명을 남길 부분이 없는 것 같?다.

 

여담: 이번에도 input() 썼더니 시간초과 떠서 sys 썼더니 됐음 ㅋㅋ sys는 혁신이다 진짜

Comments