정해진 대로 구현하기만 하면 되는 구현문제였삼
def solution(N, stages) :
answer = []
length = len(stages)
# 스테이지 번호를 1부터 N까지 증가시키며
for i in range(1, N+1) :
count = stages.count(i) #해당 스테이지에 머물러있는 사람 수 계산
# 실패율 계산
if length == 0 :
fail = 0
else :
fail = count/length
# 리스트에 (스테이지 번호, 실패율) 원소 삽입
answer.append((i, fail))
length -= count
# 실패율 기준으로 각 스테이지를 내림차순 정렬
answer = sorted(answer, key=lambda t : t[1], reverse=True)
# 결정된 스테이지 번호 출력
answer = [i[0] for i in answer]
return answer
def solution(N, stages):
answer = []
finished_user = stages[-1] # 마지막 스테이지(N 번째 스테이지) 까지 클리어 한 사용자
# 딕셔너리 초기화
stage_dict = {}
for i in range(N+1) :
stage_dict[i] = 0
for stage in stages :
stage_dict[stage -1] += 1
failure_arr = []
# 스테이지 실패율 계산 (총 마친 사람 보정, 도달한사람 없으면 실패율 0)
for i in range(N) :
total_user = 0
failure_rate = 0
for j in range (i+1) :
total_user += stage_dict[j] # 스테이지에 도달한 플레이어 수
if total_user != 0 :
failure_rate = stage_dict[i] / total_user
failure_arr.append(failure_rate)
for i in range(N) :
stage_dict[i] = failure_arr[i]
# 내림차순 정렬
sorted_dict = sorted(stage_dict.items(), key=lambda x: x[1], reverse=True)
# Key값만 배열로 리턴
for i in range(N) :
answer.append(sorted_dict[i][0])
return answer