[프로그래머스] Lv.1 실패율

Tony Kim·2022년 1월 16일
0
post-thumbnail

[프로그래머스]

Lv.1 실패율

1.문제

input 총 스테이지 수와 사용자의 데이터
output 스테이지별 실패율

2. 풀이

실패율을 구하고 dict으로 정렬하려고 했으나 runtime error

top / bottom
top: 해당 스테이지에 머물러있는 이용자 수 (count)
bottom: 해당 스테이지에 도달한 이용자 수 (stages파라미터 값에서 이전 스테이지 머물러있는 사람을 뺀 수)

3. 코드

나의 풀이

def solution(N, stages):
    a, b = 0, 0
    c = {}
    answer = []
    for i in range(N):
        a = stages.count(i+1)
        for k in stages:
            if k >= i+1:
                b += 1
        c[i+1] = a/b
        a = 0
        b = 0
    result = sorted(c.values(), reverse = True)
    answer = []
    for k in result:
        for i in range(N):
            if k == c[i+1]:
                answer.append(i+1)     
    answer2 = []
    for i in answer:
        if i not in answer2:
            answer2.append(i)
    return answer2

모범코드

def solution(N, stages):
    result = {}
    bottom = len(stages)
    for stage in range(1, N+1):
        if bottom != 0:
            top = stages.count(stage)
            result[stage] = top / bottom
            bottom -= top
        else:
            result[stage] = 0
    return sorted(result, key=lambda x : result[x], reverse=True)

반성)

  • lambda
  • enumerate
  • 딕[key] = value
profile
Back-end-dev

0개의 댓글