문제 출처: https://www.acmicpc.net/problem/1302
1302번: 베스트셀러
첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고
www.acmicpc.net
문제
김형택은 탑문고의 직원이다. 김형택은 계산대에서 계산을 하는 직원이다. 김형택은 그날 근무가 끝난 후에, 오늘 판매한 책의 제목을 보면서 가장 많이 팔린 책의 제목을 칠판에 써놓는 일도 같이 하고 있다.
오늘 하루 동안 팔린 책의 제목이 입력으로 들어왔을 때, 가장 많이 팔린 책의 제목을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고, 알파벳 소문자로만 이루어져 있다.
출력
첫째 줄에 가장 많이 팔린 책의 제목을 출력한다. 만약 가장 많이 팔린 책이 여러 개일 경우에는 사전 순으로 가장 앞서는 제목을 출력한다.
정답
import sys
n = int(sys.stdin.readline().rstrip())
dic = {}
for _ in range(n):
tmp = sys.stdin.readline().rstrip()
if tmp in dic:
dic[tmp] +=1
else:
dic[tmp] = 1
answer = sorted(dic.items(),key = lambda x : (-x[1],x[0]))
print(answer[0][0])
1. n에 책의 개수 입력
2. dic 세팅
3. for문 - dic에 값이 없을 경우 key에 tmp, value에 1세팅, dic에 값이 있을 경우 value값에 +1
4. answer에 value값의 역순과 key값의 순서대로 입력
5. answer[0][0] 출력(맨 처음 key값)
코드 자체가
[백준/파이썬/자료구조] 11652번 카드 코딩테스트 연습풀이
문제 출처: https://www.acmicpc.net/problem/11652 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준
hiisk.tistory.com
이 문제와 상당히 유사한 문제였습니다.
코드를 가져와서 조금 바꿔서 해결하였습니다.
'코딩 > 백준' 카테고리의 다른 글
[백준/파이썬/DP] 9465번 스티커 코딩테스트 연습풀이 (0) | 2022.06.30 |
---|---|
[백준/파이썬/브루트포스] 18111번 마인크래프트 코딩테스트 연습풀이 (0) | 2022.06.30 |
[백준/파이썬/그래프/DFS] 11403번 경로 찾기 코딩테스트 연습풀이 (0) | 2022.06.28 |
[백준/파이썬/DP] 1904번 01타일 코딩테스트 연습풀이 (0) | 2022.06.28 |
[백준/파이썬/브루트포스] 2529번 부등호 코딩테스트 연습풀이 (0) | 2022.06.27 |