jm_p_op
모의고사 해설 4. 실패율-코딩 줄이기 본문
dafaultdict 을 통한 try,except문 제거가능
import os
from collections import defaultdict
os.system("cls")
N=5; stages=[2,1,2,6,2,4,3,3]
challenger_dic=defaultdict(int)
for player_stage in stages:
challenger_dic[player_stage] += 1
#전체 도전자 수 구하기
players=len(stages)
# 실패율을 저장할 dict 선언
fail_rates=defaultdict(list)
#스테이지 수만큼 for반복문 실행
for stage in range(1,N+1):
#실패율 계산
fail_rate=challenger_dic[stage]/players #실패율 = 특정스테이지에 있는 플레이어수/특정스테이지를 겪은 플레이어수
players-=challenger_dic[stage] #이전 스테이지의 도전자 수만큼 줄여라 :챠밍했던 포인트
#실패율 dict에 저장
fail_rates[fail_rate]+=[stage]
#실패율이 높은순으로 정렬
fail_vals=sorted(fail_rates.keys(),reverse=True) # sorted(dict,reverse=True) 의 경우 value값으로 1차 정렬, key값으로 2차 정렬
#실패율에 해당
result=[]
for fail_val in fail_vals:
result+=fail_rates[fail_val]
print(result)
'수학 > 알고리즘' 카테고리의 다른 글
모의고사 해설 5. 로그인 성공? (0) | 2023.04.26 |
---|---|
프로그래머스 - 이진수 더하기 (0) | 2023.04.23 |
모의고사 해설 4. 실패율 (0) | 2023.04.21 |
모의고사 해설 4. 둘만의 암호 (0) | 2023.04.20 |
모의고사 해설 3. 방의갯수 (0) | 2023.04.18 |