[프로그래머스/파이썬] 실패율(42889) 풀이
업데이트:
문제 정보
- 문제 출처: 프로그래머스 코딩테스트 연습
- 문제 링크: 실패율(42889)
- 문제풀이 코드 GitHub 링크
- 풀이 언어: Python 3
풀이
문제
각 스테이지의 실패율을 계산해 실패율 내림차순(같으면 스테이지 번호 오름차순)으로 정렬하는 문제입니다.
코드
def solution(N, stages):
answer = []
info = [[0,0] for _ in range(N+2)]
for stage in stages:
for i in range(1,stage+1): info[i][1] += 1
info[stage][0] += 1
for i in range(1, N+1):
try: answer.append((-info[i][0]/info[i][1], i))
except ZeroDivisionError: answer.append((0, i))
return list(map(lambda x:x[1], sorted(answer)))
print(solution(8, [1,2,3,4,5,6,7]))
설명
각 스테이지 i에 대해:
- 도달한 플레이어 수
- 클리어하지 못한 플레이어 수
를 구해 실패율을 계산합니다.
정렬 시에는 실패율 내림차순이 필요하므로
코드에서는 (-실패율, 스테이지) 형태의 튜플로 만들어 정렬합니다.
댓글남기기