문제 : 베스트셀러
갯수가 많은대로, 알파벳 사전순 앞순서대로 정렬
내가 푼 방식은 갯수, 알파벳 순서대로 정렬하고
가장 큰 갯수보다 작아지면 멈추고 가장 마지막으로 출력된 문자열 출력했다.from collections import defaultdict n = int(input()) lst = defaultdict(list) for i in range(n): tmp = input() lst[tmp].append(tmp) answer = [] for i in lst: answer.append([i, len(lst[i])]) answer.sort(key=lambda x: (x[1], x[0]), reverse= True) block = 0 result = [] for i, v in enumerate(answer): if i == 0: block = v[1] if v[1] < block: break result.append(v[0]) print(result[-1])
이건 다른 분이 푼 방법인데 , items()먼저 정렬하고 , 숫자순서대로 또 정렬할 수가 있더라. 이런 방식으로 풀면 더 쉽다.
from collections import defaultdict n = int(input()) lst = defaultdict(list) for i in range(n): tmp = input() lst[tmp].append(tmp) answer = {} for i in lst: answer[i] = len(lst[i]) answer = max(sorted(answer.items()), key=lambda x:x[1]) print(answer[0])