def solution(k, m, score):
answer = 0
a = []
min = 0
score.sort(reverse=True) #역순으로 정렬
while len(score) >= m:
#최저점수
min = score[m-1]
del score[0:m] #제거
answer += min * m
return answer
결과 : 테스트 11,12,13,14,15 실패 ( 시간초과 )
-> while문 사용으로 인한 시간초과로 생각 for문으로 바꾸기
def solution(k, m, score):
answer = 0
score.sort(reverse=True) # 역순으로 정렬
#이익이 발생하지 않는 경우
if len(score) < m :
return 0
n = len(score) // m # 반복하는 횟수
# 1~n+1까지 반복하여 이익 계산
for i in range(1,n+1) :
answer += m*score[m*i-1]
return answer
결과 : 통과
출처: 프로그래머스 코딩 테스트 연습,
https://school.programmers.co.kr/learn/courses/30/lessons/135808?language=python3