나의 풀이
from collections import Counter
def solution(N, stages):
answer = []
result = []
length=len(stages)
dic_user_stage=Counter(stages)
#print(dic_user_stage)
for idx in range(1, N+1):
if length != 0:
fail_ratio = dic_user_stage[idx]/length
answer.append([idx, fail_ratio])
length = length-dic_user_stage[idx]
else:
answer.append([idx, 0])
sorted_answer = sorted(answer, key=lambda x: [-x[1]])
#print(sorted_answer)
for x, y in sorted_answer:
result.append(x)
#print(result)
return result
▶ collections의 Counter() 함수를 이용하면 리턴타입이 dictionary 이다.
다른 사람의 풀이
def solution(N, stages):
result = {}
denominator = len(stages)
for stage in range(1, N+1):
if denominator != 0:
count = stages.count(stage)
result[stage] = count / denominator
denominator -= count
else:
result[stage] = 0
return sorted(result, key=lambda x : result[x], reverse=True)
▶ 파이썬의 리스트가 가지고 있는 count() 의 리턴타입은 정수이다.
▶ 내가 알지 못했던 정렬방식도 있다.
▶ sorted(result, key=lambda x : result[x], reverse=True) → 첫번째 요소도 내림차순, 두번째 요소도 내림차순★★
'프로그래머스(파이썬) > LV.1(파이썬)' 카테고리의 다른 글
푸드 파이트 대회→deque() + while문 + cnt-=1→소모개념★★+ 우측에서 좌측으로 (0) | 2022.12.18 |
---|---|
콜라 문제→ 치킨 쿠폰과 매우 유사★★ (0) | 2022.12.18 |
소수 만들기→조합(3중 for문)+ 소수인지 판별def isPrime(x)★★+새로운 소수판정법★ (0) | 2022.12.18 |
모의고사 → 순환 %★ + for x, y in enumerate(answers)★ (0) | 2022.12.17 |
삼총사→ 조합 + 삼중 for문 (0) | 2022.12.17 |