코딩테스트/프로그래머스

[PROGRAMMERS] 최빈값 구하기 (LV. 0) -Python

지원연구소 2024. 5. 2. 02:24

[ 문제 ]

최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 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

 

< 입출력 예 #1 >

  • [1, 2, 3, 3, 3, 4]에서 1은 1개 2는 1개 3은 3개 4는 1개로 최빈값은 3입니다.

< 입출력 예 #2 >

  • [1, 1, 2, 2]에서 1은 2개 2는 2개로 최빈값이 1, 2입니다. 최빈값이 여러 개이므로 -1을 return 합니다.

< 입출력 예 #3 >

  • [1]에는 1만 있으므로 최빈값은 1입니다.

 

 

[ 해결 방법 ]

1. 요소 개수를 입력할 변수 times와 times가 가장 높은 값을 입력할 변수 most_num 선언
2. array로 반복을 하면서 times보다 현재 요소의 개수가 많을 경우 times에 count() 메소드로 값 입력하고 most_num에 값 입력
3. times와 현재 요소 개수가 동일한데 most_num과 현재 요소가 다를 경우 most_num에 -1 입력
4. 모든 반복 종료 후 가장 많이 나오는 값 most_num 반환

 

[ solution.py ]

def solution(array):
    times = 0
    most_num = 0
    
    for i in array:
        if array.count(i) > times:
            times = array.count(i)
            most_num = i
        elif array.count(i) == times and most_num != i:
            most_num = -1           
    
    return most_num

 

 

 

> 🌻피드백은 언제나 환영입니다🌻 <