문제링크
https://programmers.co.kr/learn/courses/30/lessons/42889
풀이
# 내풀이
def solution(N, stages):
stages = np.array(stages)
d = {}
for i in range(1,N+1):
stages = stages[np.where(stages >= i)]
try_num = len(stages)
success = sum(np.where(stages == i,1,0))
try:
d[i] = success / try_num
except:
d[i] = 0
d = dict(sorted(d.items(), key=lambda x: x[1], reverse=True))
return list(d.keys())
# 다른 사람 풀이
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)
피드백
다른사람풀이가 시간 효율이 더 좋음
'코딩 문제 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 다트 게임 (python) (0) | 2022.05.12 |
---|---|
[프로그래머스] 비밀지도 (python) (0) | 2022.05.12 |
[프로그래머스] 크레인 인형뽑기 게임 (python) (0) | 2022.05.09 |
[프로그래머스] 키패드 누르기 (python) (0) | 2022.05.06 |
[프로그래머스] 숫자 문자열과 영단어 (python) (0) | 2022.05.06 |