# 문제
# 풀이
문제는 매우 간단하다. 파이썬의 딕셔너리를 이용한다면 쉽게 풀 수 있다. 하지만 동일한 순위의 책이 존재한다면 사전순(오름차순)에서 가장 앞에 있는 책을 선택해야하는데 이 것을 처리하기 위해서 막혔었다.
temp = sorted(dic.items())
temp = dict(temp)
print(max(temp,key=lambda x: dic[x]))
위와 같이 사용하면 된다. dic.items()를 반환하면 (key, value)형태의 튜플이 나오게 되는데, 이것을 정렬 시켜준 후 다시 dict로 바꾸면 된다.
# 코드
import sys
# sorted를 사용해서 key를 사전순으로 정렬 후
# 다시 dict로 타입변경 후 max를 수행
def solve():
N = int(sys.stdin.readline().strip())
dic = dict()
for _ in range(N):
book = sys.stdin.readline().strip()
if book not in dic:
dic[book] = 1
else :
dic[book] +=1
temp = sorted(dic.items())
temp = dict(temp)
print(max(temp,key=lambda x: dic[x]))
if __name__ == '__main__':
solve()
# 마치며
'•알고리즘(Algorithm ) > 문제풀이' 카테고리의 다른 글
[백준1926&파이썬] BFS를 활용하여, 연결된 노드의 너비를 세는 방법 (0) | 2023.04.04 |
---|---|
[백준-1236] 성지키기 파이썬 풀이 (0) | 2022.08.09 |
[백준-1543] 문서 검색 파이썬 풀이 (0) | 2022.08.09 |
[백준-1568] 새 파이썬 풀이 (0) | 2022.08.09 |
[백준-1668] 트로피 진열 파이썬 (0) | 2022.08.09 |