💻 링크
https://school.programmers.co.kr/learn/courses/30/lessons/42889

📖 문제 해결
문제에서 정의한 대로 실패율을 계산하고, 파이썬 리스트의 내장 함수인 sort()함수의 key parameter를 이용하여 실패율을 내림차순으로 정렬하였습니다. 그 후 실패율이 높은 스테이지 순서대로 answer 리스트에 append() 하여 문제를 해결하였습니다.

# key parameter 활용을 위해 구현한 함수
def failures_key(failures_):
    return failures_[1]

def solution(N, stages):
    
    # 각 스테이지마다 사람들이 얼마나 있는지 계산하기 위한 리스트
    now = [0]*(N+2)
    
    for stage in stages:
        now[stage] += 1
    
    # 각 스테이지마다 실패율을 계산하기 위한 리스트
    failures = [0]*(N+2)
    
    for idx, stage in enumerate(now):
    	
        # sum(now[idx:]) != 0 이면 공식에 맞춰 실패율 계산
        if  sum(now[idx:]) != 0:
            failures[idx] = (idx, now[idx] /  sum(now[idx:]))
        
        # sum(now[idx:]) == 0 이면 실패율은 0
        else:
            failures[idx] = (idx, 0)
            
    failures = failures[1:N+1]
	
    # 실패율을 기준으로 내림차순으로 정렬
    failures.sort(reverse = True, key = failures_key)
    
    answer = []
    
    # 실패율이 가장 높은 스테이지부터 answer 리스트에 추가
    for index in failures:
        answer.append(index[0])
        
    return answer
profile
AI를 공부하고 있는 학생입니다:)

0개의 댓글