코딩테스트
프로그래머스 - 최빈값 구하기
sogummi
2023. 3. 29. 12:25
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다.
정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요.
최빈값이 여러 개면 -1을 return 합니다.
> 제한사항
0 < array의 길이 < 100
0 ≤ array의 원소 < 1000
>입출력 예
array result
[1, 2, 3, 3, 3, 4] 3
[1, 1, 2, 2] -1
[1] 1
제출 코드
# 배열의 값들을 하나씩 순회해서 같은 숫자들을 카운트 후 가장 많은 카운트를 가진 숫자를 출력
def solution(array):
#최빈값 구할 딕셔너리 선언
cnt_dict = {}
#정수 리스트 매개변수 순회, 요소가 딕셔너리에 있으면 1 추가, 없으면 1 로 지정
for _ in array:
if _ not in cnt_dict:
cnt_dict[_] = 1
else:
cnt_dict[_] += 1
max_cnt = max(cnt_dict.values()) # cnt_values의 최빈값 구하기
#동일 최빈값을 가진 숫자를 판별 할 리스트 생성
discriminant = []
# cnt_dict의 key,value 순회
for i, j in cnt_dict.items():
if j == max_cnt:
discriminant.append(i)
#판별리스트의 len으로 동일 최빈값 있는지 확인
if len(discriminant) > 1:
return -1
else:
return discriminant[0]