반응형
https://www.acmicpc.net/problem/2108
import sys
from collections import Counter
n = int(sys.stdin.readline()) # 수의 개수
nums = [] # 숫자 리스트
# 숫자 입력 받기
for _ in range(n):
nums.append(int(sys.stdin.readline()))
# 산술 평균
print(round(sum(nums) / n))
# 중앙값
nums.sort()
print(nums[n//2])
# 최빈값
count = Counter(nums).most_common()
if len(count) > 1 and count[0][1] == count[1][1]: # 최빈값이 두 개 이상인 경우 두번째로 작은 값 출력
print(count[1][0])
else:
print(count[0][0])
# 범위
print(max(nums) - min(nums))
[ 배운 점 ]
이 문제를 통해 처음 Counter 를 써본 것 같다. Couter 클래스를 사용하면 주어진 단어나 리스트에서 가장 많이 등장하는 요소와 요소의 등장 횟수를 알 수 있습니다. 다음과 같이 사용할 수 있습니다.
from collections import Counter
Counter('hello world').most_common()
# [('l', 3), ('o', 2), ('h', 1), ('e', 1), (' ', 1), ('w', 1), ('r', 1), ('d', 1)]
반응형
'Algorithm > 백준' 카테고리의 다른 글
[백준/Python] 좌표 압축 (0) | 2021.09.08 |
---|---|
[백준/Python] 단어 정렬 (0) | 2021.09.06 |
[백준/Python] 영화감독 숌 (0) | 2021.08.25 |
[백준/Python] 체스판 다시 칠하기 (0) | 2021.08.24 |
[백준/Python] 덩치 (0) | 2021.08.24 |