프로그래머스 코딩테스트 고득점 Kit의 문제입니다.
https://programmers.co.kr/learn/challenges?tab=algorithm_practice_kit
코딩테스트 연습
기초부터 차근차근, 직접 코드를 작성해 보세요.
programmers.co.kr
문제
https://programmers.co.kr/learn/courses/30/lessons/42889
코딩테스트 연습 - 실패율
실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스
programmers.co.kr
내가 작성한 코드
from collections import Counter
from heapq import heappop, heappush
def solution(N, stages):
answer = []
q = []
n = len(stages)
stages = Counter(stages)
for s in range(1, N+1):
if n != 0:
heappush(q, (-stages[s] / n, s))
n -= stages[s]
else:
heappush(q, (0, s))
while q:
v, s = heappop(q)
answer.append(s)
return answer
- 1~N까지 각 stage 탐색 (낮은 스테이지부터 탐색)
- Counter
- 실패율 계산을 위해 Counter 사용
- heapq
- 실패율이 높은 순서대로 출력
- 최대힙을 위해 마이너스로 계산
- 이미 모든 순위가 정해진 경우
- 모든 사용자가 N보다 작은 스테이지까지 도달한 경우
- 실패율은 0
- n -= stages[s]
- "스테이지에 도달한 플레이어 수" 계산
다른 사람이 작성한 코드
None
기억해야할 것
- heapq로 만들지 않아도 될 것 같다
'코딩테스트' 카테고리의 다른 글
[프로그래머스][KAKAO_BLIND][2020] 기둥과 보 설치 (0) | 2021.08.30 |
---|---|
[프로그래머스][KAKAO_BLIND][2019] 후보키 (0) | 2021.08.30 |
[프로그래머스][KAKAO_BLIND][2020] 자물쇠와 열쇠 (0) | 2021.08.29 |
[프로그래머스][KAKAO_BLIND][2019] 오픈채팅방 (0) | 2021.08.29 |
[프로그래머스][KAKAO_BLIND][2021] 카드 짝 맞추기 (0) | 2021.08.26 |