[백준] 1302: 베스트셀러

JIN·2022년 1월 8일
0

정렬

문제 : 베스트셀러

갯수가 많은대로, 알파벳 사전순 앞순서대로 정렬

내가 푼 방식은 갯수, 알파벳 순서대로 정렬하고
가장 큰 갯수보다 작아지면 멈추고 가장 마지막으로 출력된 문자열 출력했다.

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])
profile
배우고 적용하고 개선하기

0개의 댓글