https://www.acmicpc.net/problem/1302
https://github.com/stellaluminary/Baekjoon
dict 해시를 통한 저장과 함께 최빈 값에 따른 사전순 정렬을 진행한 후 값을 도출한다.
import sys
input = sys.stdin.readline
n = int(input())
l = [input().rstrip() for _ in range(n)]
d = {}
max_n = 0
for i in l:
if i not in d:
d[i] = 1
else:
d[i] += 1
max_n = max(max_n, d[i])
res = []
for i in d:
if d[i] == max_n:
res.append(i)
print(sorted(res)[0])
dict를 활용하는 것이 가장 깔끔하지만 만약 list로만 한다면 다음과 같이 코드를 짤 수 있다.
import sys
input = sys.stdin.readline
n = int(input())
l = [input().rstrip() for _ in range(n)]
unique = []
for i in l:
if i not in unique:
unique.append(i)
num = sorted([(l.count(i),i) for i in unique], key=lambda x:(-x[0], x[1]))
print(num[0][1])