티스토리 뷰

728x90
반응형

 

https://programmers.co.kr/learn/courses/30/lessons/42889

 

코딩테스트 연습 - 실패율

실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스

programmers.co.kr

 

 


 

 

<나의 풀이>

def solution(N, stages):
    answer = {} # 스테이지와 스테이지에 도달한 사람을 둘다 담기 위해 사전으로 선언
    total = len(stages) # 스테이지에 도달한 사람 수

    for s in range(1, N+1):
        if total != 0:
            cnt = stages.count(s) # 현재 스테이지를 도전하고 있는 사람 수
            answer[s] = cnt / total # 실패율 계산하여 단계와 실패율을 넣어줌
            total -= cnt
        else:
            answer[s] = 0

	# valuse값을 기준으로 정렬시키고, key를 출력
    answer = sorted(answer, key=lambda x: answer[x], reverse=True)
    
    return answer

 

 

 

<다른 사람의 풀이>

def solution(N, stages):
    fail = {}
    for i in range(1,N+1):
        try:
            fail_ = len([a for a in stages if a==i])/len([a for a in stages if a>=i])
        except:
            fail_ = 0
        fail[i]=fail_
    answer = sorted(fail, key=fail.get, reverse=True)
    return answer
  
  
# <배운점> 
# => get함수를 사용하여 푸는 점
728x90
반응형
댓글