프로그래밍/Python

[프로그래머스] 최빈값 구하기 Python

민또배기 2023. 1. 11. 02:25
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/120812

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

최빈값란 주어진 값 중에서 가장 자주 나오는 값입니다.

배열이 있을 때, 원하는 숫자의 갯수를 세어주면 되겠구나라고 생각했습니다.

def solution(array):
    answer = 0
    maxCnt = 0
    count = set(array)
    for c in count:
        if maxCnt < array.count(c):
            maxCnt = array.count(c)
            answer = c
        elif maxCnt == array.count(c):
            answer = -1
    return answer

set을 사용한 이유는 중복된 값을 없애기 위해서 입니다.

 

다른 방법은 배열 중 하나의 값을 세고 지우고 다시 세는 방법도 있습니다.

def solution(array):
    while len(array) != 0:
        for i, a in enumerate(set(array)):
            array.remove(a)
        if i == 0: return a
    return -1
반응형