반응형
2108번 최빈값을 구할려고 하는데
mmax = 0
mmaxn = 0
dup =[]
for i in stg:
if mmax<stg.count(i):
if len(dup)>0:
dup.clear()
mmax = stg.count(i)
mmaxn = i
elif mmax == stg.count(i):
dup.append(int(mmaxn))
dup.append(i)
dup = set(dup)
dup =list(dup)
if len(dup)>1:
dup.sort()
print(dup[1])
else:
print(mmaxn)
웅장한 코드로 내니까 당연하게도 시간초과뜨면서 틀렸다.
아무리 고민해도 모르겠어서 살짝 엿보기해보니까 아예 Counter라는 함수를 따로 써야했다.
나는 몰랐기에 기록해둔다.
Counter.most_common() 이렇게 하면 입력 된 값의 갯수를 튜플값으로 반환하고 리스트로 감싸서 가장 최빈값을 앞에서부터 나열한다.
Counter.most_Common(n)을 입력하면 상위 n개의 값만을 출력해주고 만다.
+ 어떤 문자열을 Counter()하면 자료들이 나온 빈도값을 새로운 dictionary로 반환해준다.
반응형
'과거의 유산들 > python' 카테고리의 다른 글
얕은 복사 깊은 복사 (0) | 2022.06.26 |
---|---|
전역변수 (0) | 2022.06.11 |
range 역순을 할때 (0) | 2022.04.19 |
enumerate (0) | 2022.04.06 |
ascii 코드 변환 (0) | 2022.03.26 |