티스토리 뷰

728x90
반응형

문제

https://programmers.co.kr/learn/courses/30/lessons/42889?language=python3 

 

코딩테스트 연습 - 실패율

실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스

programmers.co.kr

 

코드

def solution(N, stages):
    answer = []
    leng = len(stages)
    d = {}
    for i in range(1,N+1):
        count = stages.count(i) # i스테이지를 못깬 인원수
        if leng == 0:
            d[i] = 0
        else:
            d[i] = (count / leng)
            leng -= count # 못깬 인원수를 빼준다
    answer= sorted(d, key=lambda x : d[x], reverse=True)
    return answer

딕셔너리를 이용하여 인덱스 값과 실패율을 같이 저장한다음 lambda를 이용행 value값(실패율)으로 내림차순 정렬해 key값(인덱스)를 출력해주면 된다.

 

일단 실패율을 구하기 위해서 stages를 for문으로 돌아 1인 수를 찾는다고 했을때 1인수가 2개가 있다면 1스테이지를 못깬 사람이 2명 있다는 뜻이다. 그래서 총인원수 leng으로 나누면 실패율을 구할 수 있다.

 

실패율을 구한 다음에는 총인원수에서 실패한 인원들을 뺴준값으로 계속 진행한다. (leng -= count)

 

실패율을 선언해준 딕셔너리 d에 계속 넣어준 뒤 정렬을 시켜주면 된다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31