import collections
print(collections.Counter(a))
---> Counter({3:4. 1:3, 2:2,..})
이런 식으로 딕셔너리 형태로 저장됨
불러올 때에는 이중리스트 형태로 생각하면 되서,
예:
cnt = Counter(data).most_common(2)
: 최대 빈수 2개 수 가져와라 뜻이고
불러올 때에는 이중리스트 생각해서,
cnt[0][1] == cnt[1][1] :
불러온 2개의 빈도수가 같다면, print(cnt[1][1]) ---> 두번째 수 불러와라 뜻
최종 코드
from collections import Counter
import sys
input = sys.stdin.readline
n=int(input())
data=[]
for i in range(n): # 5
data.append(int(input()))
data.sort() # 정렬
print(round(sum(data)/n)) # int 를 빼주니 잘 출력됨...
print(data[n//2])
cnt = Counter(data).most_common(2) # 카운터 이용해서, 빈도수 높은 수 2개 겟함
# 최빈값을 구합시다
if len(data) > 1:
if cnt[0][1] == cnt[1][1]:
print(cnt[1][0])
else:
print(cnt[0][0])
else:
print(cnt[0][0])
print(data[-1]-data[0])
새로운 지식 하나 겟.. 모를 땐 재미없었는데
유용한 내장함수 같다
프리퀀시를 계산해주고, 딕셔너리 형태로 저장해주고, 불러올 땐 이중리스트로 취급해서 불러오면 됨
그리고 두번째 빈도수 숫자 불러오고 싶으면 저런 식으로 접근하는 게 신박
마지막 최대값 최소값 차이는 나는 리스트로 저장되었으니 가장 막값, 첫값 빼서 저장
어떤 분들은 맥스, 민값으로 하였고
첫번째 두번째 프린트 구할 때에는 어떤 분들은 len(data) ----> 나는 n 값으로 나누어주었다.
'2022-3 > 1일1코딩' 카테고리의 다른 글
[BOJ] 10814 python (0) | 2022.12.07 |
---|---|
[BOJ] 11650 python (0) | 2022.12.07 |
[BOJ] 1978 python (1) | 2022.11.30 |
[BOJ] 10989 python (0) | 2022.11.29 |
[BOJ] 1193 python (0) | 2022.11.29 |