728x90
반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/120812
해설
딕셔너리를 사용해서 각 숫자의 개수를 저장해두면 풀기 편하다.
max value값과 같은 value를 가진 key의 개수만 파악하면 된다.
코드
-파이썬
import operator
def solution(array):
answer = list(set(array)) # 중복 제거한 array
dic = {}
for i in answer:
dic[i] = array.count(i) #각 숫자의 개수를 세서 딕셔너리에 key, value로 추가
max_0 = max(dic.items(), key=operator.itemgetter(1))[0] #max인 키값
max_1 = max(dic.items(), key=operator.itemgetter(1))[1] #max인 밸류값
cnt = 0
for v in dic.values():
if max_1 == v: #max인 밸류 값과 각 키의 밸류 값이 같으면 +1
cnt += 1
if cnt > 1: #max와 같은 밸류를 가진 수가 1개를 초과하면 최빈값이 여러개이므로 -1을 리턴
return -1
else: #1개면 최빈값과 max값이 같다는 뜻이므로 max값의 키를 출력
return max_0
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[파이썬] 프로그래머스_외계행성의 나이 (0) | 2022.10.25 |
---|---|
[파이썬] 프로그래머스_진료순서 정하기 (0) | 2022.10.25 |
[파이썬] 프로그래머스_시저 암호 (0) | 2022.08.30 |
[파이썬] 프로그래머스_자릿수 더하기 (0) | 2022.08.29 |
[파이썬] 프로그래머스_서울에서 김서방 찾기 (0) | 2022.08.29 |