일상 코딩
[python] 백준 알고리즘 1302번 베스트셀러, sorted()를 이용한 풀이 본문
코딩테스트/백준 online Judge
[python] 백준 알고리즘 1302번 베스트셀러, sorted()를 이용한 풀이
polarcompass 2021. 11. 13. 09:08728x90
https://www.acmicpc.net/problem/1302
N = int(input())
S = dict()
for _ in range(N):
book = input()
if book not in S:
S[book] = 0
S[book] += 1
print(sorted(list(S.items()), key=lambda x: (-x[1], x[0]))[0][0])
입력 예제
8
icecream
peanuts
peanuts
chocolate
candy
chocolate
icecream
apple
출력 예제
chocolate
여기서 핵심은 sorted() 안의 익명함수 정렬 순서이다.
key = lambda x: (-x[1], x[0])
위 식에서 -x[1]은 튜플의 두번째 자리를 기준으로 먼저 내림차순으로 정렬한다는 의미이고,
x[0]은 숫자가 같을시 앞자리를 기준으로 오름차순으로 정렬하겠다는 의미이다.
어느것을 앞에 배치하겠는지가 중요하고, 결과값이 완전 달라지게 되어있다.
참고 사이트
https://zidarn87.tistory.com/25
728x90
'코딩테스트 > 백준 online Judge' 카테고리의 다른 글
[python] 백준 알고리즘 2110번 공유기 설치, 이진 탐색 풀이 (0) | 2021.11.13 |
---|---|
[python] 백준 알고리즘 1236번 성 지키기, 배열 회전, max() (0) | 2021.11.13 |
[python] 백준 알고리즘 1543번 문서 검색, 리스트 슬라이싱을 활용한 풀이 (0) | 2021.11.12 |
[python] 백준 알고리즘 7490번 0 만들기, 중복순열 풀이법 (0) | 2021.11.11 |
[python] 백준 알고리즘 1074번 Z, 다이나믹 프로그래밍 풀이법 (0) | 2021.11.10 |