본문 바로가기

코딩테스트/파이썬

프로그래머스 level1 실패율

728x90

문제 설명

 

 

rate는 실패율이 저장되어 있는 배열이고 counts는 해당 스테이지까지 도달하지 못한 유저의 수다.

 

for문을 사용하여 1부터 전체 스테이지까지 돌고 if문을 사용하여 해당 스테이지에 도달한 유저가 있는지 체크한다. 그래서 있을 경우 해당 스테이지를 도전 중인 유저의 수 / 해당 스테이지를 클리어 한 유저의 수 를 rate에 append 하고 없을 경우에는 0을 append 한다. counts += stages.count(i)는 예를 들어 3번 스테이지까지 도달하지 못한 유저의 수는 1번 스테이지를 도전 중인 사람의 수 + 2번 스테이지를 도전 중인 사람의 수여서 저렇게 계산했다. 모든 실패율을 계산한 후 sort 함수를 사용하여 내림차순으로 정렬한다.

 

sort_rate 함수의 값을 사용하여 rate에서 몇 번 스테이지 였는지 찾아서 answer에 넣어준다.

 

 

전체 코드

 

def solution(N, stages):
    answer = []
    rate = []
    counts = 0
    
    for i in range(1,N+1):
        if(len(stages)-counts != 0):
            rate.append(stages.count(i)/(len(stages)-counts))
        else:
            rate.append(0)
        counts += stages.count(i)
    sort_rate = sorted(rate,reverse=True)

    for i in range(len(rate)):
        num = rate.index(sort_rate[i])
        answer.append(num+1)
        rate[num] = -1
    return answer
728x90
반응형