🔻Algorithm/Programmers

[Programmers] 프로그래머스 실패율 Python

_니지 2024. 5. 14. 23:43

https://school.programmers.co.kr/learn/courses/30/lessons/42889#qna

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

from collections import Counter


def solution(N, stages):

    # 변수 선언
    percent = []
    result = []
    people = len(stages)
    counter = Counter(stages)
    counter = sorted(counter.items())


    # (스테이지 번호, 인원) 리스트
    counter_list = []
    num = [x for x in range(N+1)]
    round  = [x[0] for x in counter]

    for n in num:
        if n not in round:
            counter_list.append((n, 0))
    for c in counter:
        counter_list.append(c)

    counter_list.sort(key=lambda x : x[0])
    counter_list.pop(0)


    # 각 스테이지의 실패율
    for count in counter_list:
        if people != 0:
            percent.append((count[0], count[1] / people))
        else:
            percent.append((count[0], 0.0))
        people -= count[1]
    if len(percent) == N + 1:
        percent.pop()


    # 실패율 내림차순 정리
    percent.sort(key=lambda x: -x[1])
    for p in percent:
        result.append(p[0])
        
    return result

 

728x90
반응형