일상 코딩
[python] 백준 알고리즘 1302번 베스트셀러, sorted()를 이용한 풀이 본문
코딩테스트/백준 online Judge
[python] 백준 알고리즘 1302번 베스트셀러, sorted()를 이용한 풀이
polarcompass 2021. 11. 13. 09:08728x90
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
'코딩테스트 > 백준 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 |