본문 바로가기
코딩 테스트/프로그래머스

과일 장수

by ornni 2024. 3. 25.
728x90
반응형

첫번째 코드

 

def solution(k, m, score):
    
    # score 내림차순 정렬
    score_sorted = sorted(score, reverse = True)
    total_price = 0
    
    while len(score_sorted) >= m:
        box_price = 0
        min_price = 0
        box = []
        for i in range(m):
            box.append(score_sorted[0])
            del score_sorted[0] 
            
        min_price = min(box)
        box_price = min_price * m
        total_price += box_price
    
    return total_price

 

결과 일부분에서 시간초과 발생


두번째 코드

 

같은 방법이지만 쓸데없는 리스트나 값을 제거하자!

 

def solution(k, m, score):
    
    score.sort(reverse = True)
    total_price = 0
    
    while len(score) >= m:
        total_price += min(score[:m]) * m
        score = score[m:]
    return total_price

 

동일하게 일부분에서 시간 초과 발생


세번째 코드

 

score을 계속 새로 만드는게 오랜 시간이 걸리는 것 같음

그렇기 때문에 score 하나에서 계속 반복해서 수행하는 코드를 작성하자!

 

def solution(k, m, score):
    
    score.sort(reverse = True)
    total_price = 0
    
    for i in range(len(score)//m):
        box = score[m*i : m*(i+1)]
        total_price += box[-1]*m
    return total_price

 

통과!


링크 https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/135808.%E2%80%85%EA%B3%BC%EC%9D%BC%E2%80%85%EC%9E%A5%EC%88%98

 

programmers/프로그래머스/1/135808. 과일 장수 at main · ornni/programmers

repository for recording Programmers Algorithm problem solving - ornni/programmers

github.com

 

반응형

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글

콜라츠 추측  (0) 2024.04.01
콜라 문제  (2) 2024.03.31
부족한 금액 계산하기  (1) 2024.03.30
핸드폰 번호 가리기  (0) 2024.03.29
명예의 전당 (1)  (0) 2024.03.27