본문 바로가기
2022-3/1일1코딩

[BOJ] 1208 Counter 내장함수

by 이망고_ 2022. 12. 6.

import collections

 

print(collections.Counter(a))

 

---> Counter({3:4. 1:3, 2:2,..})

https://infinitt.tistory.com/183

 

이런 식으로 딕셔너리 형태로 저장됨

불러올 때에는 이중리스트 형태로 생각하면 되서,

예:

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