문제
2019 KAKAO BLIND RECRUITMENT 출제 문제이다.
뭔소린가 싶은데 문제에 친절하게 실패율 공식도 적혀있고 입출력 설명도 자세해서 그대로 짜면 된다.
- 실패율은 다음과 같이 정의한다.
- 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수
풀이
def solution(N, stages):
answer = []
score = collections.defaultdict(float)
for i in range(1, N + 1):
success = 0
stop = 0
cur = 0
for x in stages:
if x >= i:
success +=1
if x == i:
stop +=1
if success == 0 or stop == 0:
score[i] = 0 # 0 나누기 예외처리
else:
score[i] = stop/success
score = sorted(score.items(), key=lambda x: x[1], reverse=True) # dict v기준 내림차순정렬
for k in score:
answer.append(k[0])
return answer
위 입력값(N, stages)으로 실행 후 실패율 내림차순(reverse=True)으로 딕셔너리를 정렬했다.
(오름차순은 따로 지정안해줘도 됨~~~)
끝!
반응형
'Problem Solving > Programmers' 카테고리의 다른 글
SQL (Level 2) : 중성화 여부 파악하기 - ORACLE, CASE (0) | 2022.03.18 |
---|---|
프로그래머스 (Level 1) : 두 개 뽑아서 더하기 / Python, dictionary (0) | 2022.03.01 |
프로그래머스 (Level 1) : 없는 숫자 더하기 (Python, dictionary) (3) | 2022.02.13 |
프로그래머스 (Level 1) : 숫자 문자열과 영단어 (Python, dictionary) (2) | 2022.02.09 |
SQL (Level 4) : 입양 시각 구하기(2) - Group by, with Recursive, HOUR(datetime) (0) | 2021.07.09 |