Algorithm/프로그래머스

[프로그래머스] 귤 고르기 - 파이썬

potato_pizza 2024. 6. 18. 00:18
728x90

귤 고르기

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

 

문제

코드

  • 시간 초과 코드
def solution(k, tangerine):
    answer = 0
    tangerine.sort()
    cnt = [0] * max(tangerine)
    for i in range(max(tangerine)):
        cnt[i]+= tangerine.count(i+1) 

    cnt.sort(reverse=True)
    for j in cnt:
        answer += 1
        if k - j <= 0:
            break
        else:
            k -= j
    return answer
  • collections를 사용해 각 인자의 개수를 정리
  • value 값들을 정렬
  • 그 다음은 동일
import collections

def solution(k, tangerine):
    answer = 0
    cnt = collections.Counter(tangerine)
    cnt = sorted(cnt.values(), reverse=True)

    for i in cnt:
        answer += 1
        k -= i
        if k <= 0:
            break
    return answer
728x90
반응형