728x90
여기서 중요한 것은 max함수에 key값을 부여하여 그 key를 기준으로 가장 큰 것을 구하는 것이다.
예를 들어 [apple, apple, banana, cloud] 이런 리스트가 있다고 해보자
이 때 여기서 바로 max함수를 이용한다면 각 문자열의 맨 앞 부분을 비교하고, 유니코드로 변환했을 때 큰 값을 출력할 것이다. (여기서는 cloud가 출력됨을 확인)
하지만 우리가 원하는 것은 가장 빈도수가 높은 apple을 출력하는 것이다.
이 때 사용할 수 있는 것이 max안에 key값을 넣어 key값을 기준으로 뽑아내는 것이다. (min도 마찬가지)
# count 함수는 빈도수를 구하는 함수
# data를 value 즉 단어와 그 단어의 빈도수(data.count)를 key로 놓고 max값을 구한것
# https://velog.io/@kjy5947/python-max%ED%95%A8%EC%88%98%EC%9D%98-key%EB%B3%80%EC%88%98-%EC%82%AC%EC%9A%A9
def most_frequent(data):
return max(data, key = data.count)
n = int(input())
arr = []
for _ in range(n):
arr.append(input())
arr.sort() #빈도수가 같을경우 사전식으로 나타내기 위해 sort를 해줌
print(most_frequent(arr))
위를 보았을 때 max에 key값으로 data.count를 넣어 빈도수를 key값으로 max를 뽑아냄을 알 수 있다.
(참고로 빈도수가 똑같을 때 사전 순으로 출력되어야 함으로 arr에 sort를 해주었다)
'Algorithm' 카테고리의 다른 글
백준 알고리즘 파이썬(Python) 10815번 숫자카드 (0) | 2021.08.05 |
---|---|
백준 알고리즘 파이썬(Python) 1543번 문서검색 (0) | 2021.08.04 |
백준 알고리즘 파이썬(Python) 1074번 Z (0) | 2021.08.03 |
백준 알고리즘 파이썬(Python) 2747번 피보나치 수 (0) | 2021.08.03 |
백준 알고리즘 파이썬(Python) 2579번 계단오르기 (0) | 2021.07.30 |