코딩테스트/백준 online Judge
[python] 백준 알고리즘 1302번 베스트셀러, sorted()를 이용한 풀이
polarcompass
2021. 11. 13. 09:08
728x90
https://www.acmicpc.net/problem/1302
1302번: 베스트셀러
첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고
www.acmicpc.net
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
파이썬 리스트, 튜플 정렬하기 - sort(), sorted(), reverse()
파이썬 정렬하기 - sort(), sorted(), reverse() sort() 기본값은 오름차순 정렬이고, reverse옵션 True는 내림차순으로 정렬하게 됩니다. a= [3, 1, 9, 7, 5] a.sort() print(a) [1, 3, 5, 7, 9] a= [3, 1,..
zidarn87.tistory.com
728x90