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

2022. 12. 13. 18:08·Programming/알고리즘
728x90

1. 문제

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

 

프로그래머스

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

programmers.co.kr

최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.

 

2. 제한사항

 

3. Python code

def solution(array):
    #딕셔너리 생성
    count = {}
    for num in array:
        if num not in count:
            count[num] = 0
        count[num] +=1
    
    # 가장 큰 빈도수 찾기
    max_val = 0
    for k, v in count.items():
        if v > max_val:
            max_val = v
     
    #최빈값이 여러개일 경우와 한개일 경우 분기문
    max_cnt = [k for k,v in count.items() if v == max_val]
    if len(max_cnt) >1 :
        return -1
    else:
        return max(count, key=count.get)

 

4. 풀이

1. key가 고유 숫자, value가 빈도수인 딕셔너리 생성

2. 생성한 딕셔너리에서 최대 빈도수 찾기

3. 최대 빈도수가 여러개일 경우와 한 개일 경우 나누기

 

 

 

 

 

 

저작자표시 (새창열림)
'Programming/알고리즘' 카테고리의 다른 글
  • [프로그래머스] Lv 0 중앙값 구하기 - Python
  • [프로그래머스] Lv 0 피자 나눠 먹기 (3) - Python
  • [프로그래머스] Lv 0 피자 나눠 먹기(2) - Python
  • [프로그래머스] Lv 1 기사단원의 무기 - Python
해치
해치
뭐라도 하자
  • 해치
    hi there
    해치
  • 글쓰기 관리자
  • 전체
    오늘
    어제
    • ALL (70)
      • Programming (62)
        • Python (14)
        • SQL (13)
        • 알고리즘 (35)
      • Framework (4)
        • Airflow (3)
        • Django (1)
      • Infra (3)
        • Docker (3)
        • Linux (0)
      • AWS (0)
      • Dashboard (1)
  • 블로그 메뉴

    • 링크

    • 인기 글

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    해치
    [프로그래머스] Lv 0 최빈값 구하기 - Python
    상단으로

    티스토리툴바