# 실패율
def solution(N, stages):
answer = [[i, 0] for i in range(N+2)]
arrive = [0] * (N+2)
for x in stages:
arrive[x-1] += 1
for i in range(len(arrive)-1, 0, -1):
arrive[i-1] += arrive[i]
for i in range(1, len(arrive)):
if arrive[i-1] != 0:
answer[i][1] = (arrive[i-1] - arrive[i]) / arrive[i-1]
answer.sort(key=lambda x: -x[1])
result = []
for i, x in answer:
if i != 0 and i != len(answer)-1:
result.append(i)
return result
2019 카카오 블라인드 - 2번
answer : [인덱스 값, 정답(초기값=0)] 인 리스트를 전체 스테이지 전후로 하나의 스테이지를 추가한 길이만큼 저장
arrive : 전체 스테이지 전후로 하나의 스테이지를 추가해서 도달한 유저 수를 저장
1. arrive에 해당 스테이지에 도달한 유저수를 업데이트
2. answer[i][1]에 실패율을 계산한 값을 업데이트
3. answer를 실패율이 낮은 순서로 정렬
4. 전체 스테이지 전후의 값을 제외한 전체 스테이지의 인덱스 값을 순서대로 출력
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 무지의 먹방 라이브 (파이썬) (0) | 2022.02.15 |
---|---|
[프로그래머스] - 후보키 (파이썬) (0) | 2022.02.15 |
[프로그래머스] - 오픈채팅방 (파이썬) (0) | 2022.02.15 |
[프로그래머스] - 방금그곡 (파이썬) (0) | 2022.02.06 |
[프로그래머스] - 파일명 정렬 (파이썬) (0) | 2022.02.06 |