https://school.programmers.co.kr/learn/courses/30/lessons/42889
def solution(N, stages):
fail_rate_list = []
for i in range(1, N+1):
fail_cnt = stages.count(i)
challenger = len([x for x in stages if x >= i])
if challenger == 0:
fail_rate = 0
else:
fail_rate = fail_cnt / challenger
fail_rate_list.append([fail_rate, i])
fail_rate_list = sorted(fail_rate_list, key = lambda x : x[0], reverse=True)
answer = [i[1] for i in fail_rate_list]
return answer
정답은 맞는데 중간에 시간이 너무 오래걸리는 케이스가 있어서 해당 스테이지 이상 도달한 사람 수(challenger)를 구하는 방법을 조금 바꿔서 다시 풀었음.
def solution(N, stages):
fail_rate_list = []
challenger = len(stages)
for i in range(1, N+1):
fail_cnt = stages.count(i)
if challenger == 0:
fail_rate = 0
else:
fail_rate = fail_cnt / challenger
fail_rate_list.append([fail_rate, i])
challenger -= fail_cnt
fail_rate_list = sorted(fail_rate_list, key = lambda x : x[0], reverse=True)
answer = [i[1] for i in fail_rate_list]
return answer
확실히 시간이 덜 걸림
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Python] 크기가 작은 부분 문자열 (0) | 2023.01.04 |
---|---|
[Python] 전화번호 목록 (0) | 2023.01.01 |
[Python] 콜라 문제 (0) | 2022.12.30 |
[Python] 소수 만들기 (0) | 2022.12.29 |
[Python] [1차] 뉴스 클러스터링 (0) | 2022.12.25 |