2019 카카오 신입 공채 1차: 2. 실패율 (Python)
실패율
- Difficulty: Level 1
- Type: Array/Sorting
- link
Solution
- collections 의 Counter 를 적절히 활용해 실패 확율을 찾으면 결과 값들을 쉽게 정렬할 수 있다
import collections
def solution(N, stages):
# Count each occurrence
counter = collections.Counter(stages)
# Dict to save fail rate
failure = collections.defaultdict(float)
keys = list(counter.keys())
for i in range(1,N+1):
# Total sum of occurence for stages greater or equal
total = sum([counter[k] if k>= i else 0 for k in keys])
# Exception handling for zero division
if total == 0:
failure[i] = 0
else:
failure[i] = counter[i] / total
# Sort result by failure rate in descending order
ans = sorted(list(range(1,N+1)),key=lambda x: failure[x],reverse=True)
return ans
Author And Source
이 문제에 관하여(2019 카카오 신입 공채 1차: 2. 실패율 (Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@ahn16/2019-카카오-신입-공채-1차-2.-실패율-Python
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
- Difficulty: Level 1
- Type: Array/Sorting
- link
import collections
def solution(N, stages):
# Count each occurrence
counter = collections.Counter(stages)
# Dict to save fail rate
failure = collections.defaultdict(float)
keys = list(counter.keys())
for i in range(1,N+1):
# Total sum of occurence for stages greater or equal
total = sum([counter[k] if k>= i else 0 for k in keys])
# Exception handling for zero division
if total == 0:
failure[i] = 0
else:
failure[i] = counter[i] / total
# Sort result by failure rate in descending order
ans = sorted(list(range(1,N+1)),key=lambda x: failure[x],reverse=True)
return ans
Author And Source
이 문제에 관하여(2019 카카오 신입 공채 1차: 2. 실패율 (Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ahn16/2019-카카오-신입-공채-1차-2.-실패율-Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)