실패율 (Level 1)
1773 단어 프로그래머스 문제풀이프로그래머스 문제풀이
1. 문제
2. 나의 풀이
import heapq
from fractions import Fraction
def solution(N, stages):
answer = []
rlt = []
for i in range(1, N+1):
total_people = 0
struggled_people = 0
for s in stages:
if i == s:
struggled_people += 1
if i <= s:
total_people += 1
if struggled_people == 0 or total_people ==0:
heapq.heappush(answer, (100, i))
else:
heapq.heappush(answer, (Fraction(-struggled_people, total_people), i))
heapq.heapify(answer)
prev = [heapq.heappop(answer)]
while answer:
if prev[-1][0] < answer[0][0]:
rlt += prev
prev = [heapq.heappop(answer)]
else:
prev.append(heapq.heappop(answer))
if prev:
rlt += prev
return [x[1] for x in rlt]
3. 남의 풀이
4. 느낀 점
- 시간 초과 이슈 때문에 filter와 sum을 사용하던 코드를 수정하여 For문을 딱 한번만 돌도록 전격 수정하였다
- 그리고 소수 비교의 부정확성 때문에 fractions 모듈을 사용하여 비교하였다
Author And Source
이 문제에 관하여(실패율 (Level 1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@muchogusto/실패율-Level-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)