본문 바로가기
프로그래머스/2단계

(Python/LV2) 귤 고르기

by windy7271 2022. 11. 24.
728x90
반응형

문제 출처: 

 

첫 시도:

def solution(k, tangerine):
    dic = {x:0 for x in set(tangerine)}
    for i in tangerine:
        if i in dic:
            dic[i] += 1
        else: dic[i] = 0
    list = sorted(dic.items(),key=lambda x : x[1],reverse=True)

    res = [0, 0]
    for x, y in list:
        if y >= k:
            return 1
        res[0] += 1
        res[1] += y
        if res[1] == k:
            return res[0]
  58.8 / 100

 

def solution(k, tangerine):
    dic = {x:0 for x in set(tangerine)}
    for i in tangerine:
        if i in dic:
            dic[i] += 1
        else: dic[i] = 0
        
    list = sorted(dic.items(),key=lambda x : x[1],reverse=True)
    
    result = [0,0] # 
    for a, b in list:
        if list[0][1] > k:
            return 1
        result[0] += 1
        result[1] += b
        if result[1] >= k:
            break
    return result[0]

 

def solution(k, tangerine):
    dic = {x:0 for x in set(tangerine)}
    for i in tangerine:
        if i in dic:
            dic[i] += 1
        else: dic[i] = 0
        
    list = sorted(dic.items(),key=lambda x : x[1],reverse=True)
    
    
Counter 함수와 most 를 활용해도 된다.. 난 하지 않았다.
result = [0,0] # / 종류별 귤
for a, b in list:
    if list[0][1] > k:
        return 1
    result[0] += 1
    result[1] += b
    if result[1] >= k:
        break
return result[0]

result 값에는 [종류갯수?, 종류총갯수] 

ex) 1번사과 3개  3번사과 4개면 [2,7] 이렇게

 

근데 총갯수가 k보다 크면 브레이크한다

 

반응형

댓글