티스토리 뷰
728x90
반응형
문제
https://programmers.co.kr/learn/courses/30/lessons/42889?language=python3
코드
def solution(N, stages):
answer = []
leng = len(stages)
d = {}
for i in range(1,N+1):
count = stages.count(i) # i스테이지를 못깬 인원수
if leng == 0:
d[i] = 0
else:
d[i] = (count / leng)
leng -= count # 못깬 인원수를 빼준다
answer= sorted(d, key=lambda x : d[x], reverse=True)
return answer
딕셔너리를 이용하여 인덱스 값과 실패율을 같이 저장한다음 lambda를 이용행 value값(실패율)으로 내림차순 정렬해 key값(인덱스)를 출력해주면 된다.
일단 실패율을 구하기 위해서 stages를 for문으로 돌아 1인 수를 찾는다고 했을때 1인수가 2개가 있다면 1스테이지를 못깬 사람이 2명 있다는 뜻이다. 그래서 총인원수 leng으로 나누면 실패율을 구할 수 있다.
실패율을 구한 다음에는 총인원수에서 실패한 인원들을 뺴준값으로 계속 진행한다. (leng -= count)
실패율을 선언해준 딕셔너리 d에 계속 넣어준 뒤 정렬을 시켜주면 된다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Level1, 로또의 최고 순위와 최저 순위 (Python) (0) | 2021.06.18 |
---|---|
[프로그래머스] Level1, 1차 비밀지도 (Python) (0) | 2021.06.18 |
[프로그래머스] Level1, 키패드 누르기 (Python) (0) | 2021.06.17 |
[프로그래머스] Level2, 3차 압축 (Python) (0) | 2021.06.16 |
[프로그래머스] Level2, 3차 파일명 정렬 (Python) (0) | 2021.06.16 |
댓글