홍우진의 개발 일기장
[백준] 2108번: 통계학 / 파이썬 본문
728x90
반응형
문제 링크
https://www.acmicpc.net/problem/2108
풀이 코드
import sys
input = sys.stdin.readline
n = int(input())
a = [int(input()) for x in range(n)] #리스트 컴프리헨션
#산술평균
print(round(sum(a)/len(a)))
#중앙값
a.sort()
print(a[len(a)//2])
#최빈값
dic = dict() #딕셔너리 생성
for i in a:
if i in dic: #딕셔너리에 Key, Value 추가 및 증가
dic[i] += 1
else:
dic[i] = 1
maxval = []
for i in dic:
if max(dic.values()) == dic[i]: #max값 추출하여 maxval에 저장
maxval.append(i)
if len(maxval) == 1: #max값이 하나라면 출력, 두개 이상이면 두번째 출력.
print(maxval[0])
else:
print(maxval[1])
#범위
print(max(a)-min(a))
코드 해석
최빈값이 걸림돌이다.
딕셔너리를 사용하였다.
딕셔너리를 사용하여 카운팅 시 value값을 올려주고
max(value)의 Key를 출력하는 형식을 사용하였다.
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 10811번: 바구니 뒤집기 / 파이썬 (0) | 2024.12.10 |
---|---|
[백준] 10813번: 공 바꾸기 / 파이썬 (1) | 2024.12.09 |
[백준] 1966번: 프린터 큐 / 파이썬 (0) | 2024.12.07 |
[백준] 1929번: 소수 구하기 / 파이썬 (0) | 2024.12.06 |
[백준] 18110번: solved.ac / 파이썬 (0) | 2024.12.05 |
Comments