728x90
반응형
문제:
풀이방법:
오름차순으로 정렬한 뒤에 1스테이지부터 차례대로 실패율을 구해 나갔다. n+1 스테이지를 구할 때에는 n스테이지까지 실패한 사람들은 포함시키면 안되므로 idx 값을 두어서 포함되지 않도록 하였다. 이렇게 구한 값들을 answer_rate에 dict 형식으로 저장을 한다. dict 타입으로 저장을 하고 items으로 이 값을 가져오면 스테이지에 대한 정보와 그 스테이지의 실패율을 튜플값으로 묶어서 알 수 있기 때문이다. 따라서 실패율을 기준으로 정렬을 하고 출력은 스테이지에 대한 정보만 출력하도록 하면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
def solution(N, stages):
answer = []
answer_rate={}
number=1
stages.sort()
idx=0
while((N+1)!=number):
fail=0
challenge=len(stages)
for i in range(idx,len(stages)):
if stages[i]==number:
fail+=1
else:
break
answer_rate[number]=fail/(challenge-idx)
number+=1
idx=i
temp=sorted(list(answer_rate.items()),key=lambda x: x[1],reverse=True)
for i in temp:
answer.append(i[0])
return answer
|
cs |
문제링크:
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
[Programmers]2017 Kakao.다트 게임 (0) | 2019.10.02 |
---|---|
[Programmers]2018 Kakao.후보키 (0) | 2019.10.01 |
[Programmers]2018 Kakao. 오픈채팅방 (0) | 2019.09.29 |
[Programmers]2017 Kakao.비밀지도 (0) | 2019.09.28 |
[Programmers]2017 Kakao.캐시 (0) | 2019.09.27 |