[이코테] 정렬 : 실패율

yunan·2020년 10월 28일
0
post-thumbnail

🔦 문제링크

✍️ 풀이


먼저 stage 정렬을 통해 stage별로 순서대로 검사할 수 있게 만든다.
현재 stage에 머무르고 있는 사람은 실패한 것이므로 count를 증가시킨다. 이후 실패율을 계산하고 해당 인원을 전체 인원에서 제외시킨다.
이를 마지막까지 반복한다.

그 후 실패율을 key로 사용해 내림차순 정렬 후 스테이지 번호를 반환시켜 준다.

🛠 코드


def solution(N, stages):
    stages.sort()
    answer = []
    length = len(stages)
    fail = []
    k = 0
    for i in range(1,N+1):
        count = 0
        for j in range(k, len(stages)):
            k = j
            if stages[j] == i:
                count += 1
            else:
                break
        if length == 0:
            f = 0
        else:
            f = count/length
        fail.append((i, f))
        length = length - count
        
    #fail.sort(reverse=True, key=lambda x:x[1])
    fail.sort(key=lambda x: (-x[1]))
    for f in fail:
        answer.append(f[0])
    return answer

📝 정리


🎈 참고


profile
Go Go

0개의 댓글