-
[프로그래머스] 실패율알고리즘 2023. 4. 6. 17:35728x90
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/42889
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2. 접근
1. 실패율 = ( 도달 O & 클리어 X ) / ( 도달 O )
2. 하나의 스테이지에 도달한 모든 유저가 통과를 했을 경우 즉, 특정 스테이지의 실패율이 0 일 가능성을 배제하면 안된다
3. len(stages) 가 총 유저 수라는 사실을 잊으면 안된다.
4. 나는 실패율 조정시, 분모의 값 부분에서 혼동이 있었는데 len(stages) 을 복사해서 cnt 값을 매 스테이지마바 복사값에서 빼주면 된다
3. 풀이
def solution(N, stages): ans = [] res = [] nStage = 0 stage = len(stages) # 실패율 분모 조정을 위한 변수 while True: if nStage == N: break nStage += 1 cnt = 0 for i in stages: if i == nStage: cnt += 1 # 도달한 사람 if cnt == 0: res.append([0,nStage]) else: res.append([cnt/stage, nStage]) stage -= cnt # 분모 조저을 위함 res = sorted(res, key=lambda x: -x[0]) for i in res: ans.append(i[1]) return ans
'알고리즘' 카테고리의 다른 글
[백준] 1302 - 베스트 셀러 (0) 2023.04.07 [백준] 1059. 좋은구간 (0) 2023.04.07 [프로그래머스] [3차] n진수 게임 (0) 2023.03.28 [프로그래머스] LV2. 1차 캐시 (0) 2023.03.27 [프로그래머스] LV2. 주차요금 계산 (0) 2023.03.20