728x90
반응형
Siver IV
# 1302 베스트 셀러
https://www.acmicpc.net/problem/1302
풀이
N = int(input())
bs = [input() for i in range(N)]
sbs = list(sorted(bs))
cnt=[]
for i in sbs:
cnt.append(bs.count(i))
print(sbs[cnt.index(max(cnt))])
배운 내용
- dictionary 자료형을 이용할 수 있다
- 딕셔너리는 key, value 형태로 이루어져있다.
- items() 메소드를 사용하면 key, value를 여러개의 튜플로 이루어진 리스트로 뽑아 낼 수 있다.
- 딕셔너리는 리스트 사용 때와 달리 0을 미리 할당할 필요는 없다.
n = int(input())
books = {}
for _ in range(n):
book = input()
if book not in books:
books[book] = 1
else:
books[book] += 1
max_fraq = max(books.values())
best_seller = []
for book, number in books.items():
if number == max_fraq:
best_seller.append(book)
print(sorted(best_seller)[0])
- max('key=count') 옵션을 이용하였다.
추가적으로 알게 된 내용
- enumerate() 함수 : for 구문이 몇번 회전되었는 지를 이용할 수 있는 함수, 인덱스와 원소를 동시에 얻는 방법
- min, max함수는 옵션으로 key를 사용할 수 있다.
- key=abs 일 경우, 절댓값을 기준으로 min, max값을 찾아낸다.
- key = lambda x : x % 3과 같이 기입할 경우, 3으로 나눴을 때 나머지 값을 기준으로 min, max값을 찾아 낼 수도 있따.
'Algorithm Study > Python' 카테고리의 다른 글
[백준 파이썬] #11653 소인수분해 (0) | 2021.11.26 |
---|---|
[백준 파이썬] #2217 로프 (0) | 2021.11.26 |
[백준 파이썬] #16435 스네이크 버드 (0) | 2021.11.26 |
[백준 파이썬] #7785 회사에 있는 사람 (0) | 2021.11.26 |
[백준 파이썬] #10867 중복 빼고 정렬하기 (0) | 2021.11.26 |