알고리즘/프로그래머스

[Python] 귤 고르기

dding96 2023. 1. 8. 12:05

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

 

프로그래머스

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

programmers.co.kr

#  귤 고르기
from collections import Counter

def solution(k, tangerine):
    answer = 0
    
    count = sorted(Counter(tangerine).items(),reverse = True, key = lambda x : x[1])
    
    for key, value in count:
        if k <= 0:
          break
        k -= value
        answer += 1
    return answer

 

  • 처음 풀이(시간 초과)
from itertools import combinations

def solution(k, tangerine):
    answer = 0
    
    n_unique = [len(set(a)) for a in list(combinations(tangerine, k))]
    return min(n_unique)

너무 어렵게 생각하는 것 같다...

그리고 처음에 같은 종류의 귤은 모두 사용해야 한다고 생각해서.... 간단한 문젠데 고민을 너무 많이 했다 ㅎㅎ;;