[프로그래머스] Python 귤 고르기 Level2 - 연습문제

swb·2024년 2월 6일

프로그래머스

목록 보기
16/23

문제 바로가기

접근 방법

간단한 규칙만 찾으면 된다.
1. 빈도수가 가장 큰 것들의 빈도수를 k보다 커질 때까지 반복하면 된다.

코드

def solution(k, tangerine):
    answer = 0
    cnt = 0
    arr = dict()

    for i in tangerine:
        if i in arr:
            arr[i] += 1
        else:
            arr[i] = 1

    arr = dict(sorted(arr.items(), key=lambda item: item[1], reverse=True))

    for key, value in arr.items():
        answer += value
        cnt += 1
        if answer >= k:
            break

    return cnt

다른 코드 참고하고 깔끔히 수정한 코드

def solution(k, tangerine):
    sumk = 0
    cnt = 0
    arr = [0 for i in range(len(tangerine))]

    for i in range(len(tangerine)):
        arr[tangerine[i]-1] += 1
    arr.sort(reverse=True)

    while sumk < k:
        sumk += arr[cnt]
        cnt += 1

    return cnt
profile
개발 시작

0개의 댓글