프로그래머스 실패율

DARTZ·2022년 6월 14일
0

알고리즘

목록 보기
86/135
def solution(N, stages):

    temp_answer = [] # 임시 실패율을 저장할 리스트
    answer = [] # 정답 저장 리스트

    stages.sort(reverse=True) # 내림 차순으로 정렬 pop을 사용하기 위해

    for i in range(1, N+1):
        if i in stages: # 만약에 해당 스테이지에서 실패한 유저가 있을 경우

            data = [i, stages.count(i)/len(stages)] # 실패율 계산 저장

            temp_answer.append(data) # 임시 정답 리스트에 저장

            for _ in range(stages.count(i)): # 못 깬 사용자만큼 pop으로 제거
                stages.pop()

        else:
            data = [i, 0] # 아니라면 전부 클리어 했기 때문에 실패율은 0

            temp_answer.append(data) # 저장

    temp_answer.sort(key=lambda x: -x[1]) # 실패율을 기준으로 정렬

    for t in temp_answer:
        answer.append(t[0]) # 스테이지 순서로 정렬

    return answer
profile
사람들이 비용을 지불하고 사용할 만큼 가치를 주는 서비스를 만들고 싶습니다.

0개의 댓글