1) 람다식 참고
https://velog.io/@euisuk-chung/파이썬-시각화-마스터하기-람다Lambda-함수
2) 딕셔너리 정렬 참고
https://velog.io/@yejinleee/파이썬-딕셔너리-정렬
개수, 길이는 내림차순
알파벳순서는 오름차순
sorted는 오름차순 정렬이 default인데
이렇게 단어의 개수와 길이는 내림차순, 알파벳순서는 오름차순 해줘야 하는 경우
-를 붙여서 원소 하나만 내림차순이 되도록 해주어야 함
import sys
N,M=map(int, sys.stdin.readline().split())
words=[]
for i in range(N):
w=sys.stdin.readline().rstrip()
words.append(w)
d=dict()
for w in words:
if len(str(w))<M:#M보다 짧은 단어들은 패스
continue
else:
if w in d: #key는 단어, value는 빈도수
d[w]+=1
else: #이번에 처음 나온 단어
d[w]=1
temp=sorted(d.items(), key=lambda a: ( -a[1], -len(a[0]), a[0] ) ) #len(x[0])이다. 주의. 단어는 키값에 있으니까!
for w in temp:
print(w[0])
'CS > 알고리즘' 카테고리의 다른 글
백준 파이썬 13305번 주유소 - 간단한 풀이 (0) | 2024.07.07 |
---|---|
파이썬 2164번 카드2 - list와 deque의 시간복잡도 & 0~N 리스트 만들기 (0) | 2024.07.06 |
백준 17266번 파이썬 어두운 굴다리 (0) | 2024.07.06 |
백준 1205번 파이썬 풀이: 등수 구하기 (0) | 2024.07.04 |
백준 20125번 파이썬 : 쿠키의 신체 측정 (0) | 2024.07.04 |