2018년 카카오 blind 코딩 테스트 - 실패율 python
출처 : https://programmers.co.kr/learn/courses/30/lessons/42889
문제 풀이
[1] 실패율 = 도달하지 못한 인원 / 스테이지에 도달한 수를 계산 해야 합니다. - '현재 스테이지에 도달한 사람'은 '다음 스테이지'에서는 실패한 사람들이죠 - 다음 스테이지에서 실패율 계산은 '이전 스테이지를 클리어한 사람'을 전체 length에서 계속 빼나가면 됩니다.
[2] 스테이지에 도달한 유저가 없는 경우는 실패율을 0으로 정의 해야 합니다.
[3] 스테이지에 도달한 유저는 count()를 이용해 카운트를 하면 됩니다.
[4] 스테이지는 1부터 인덱스가 시작하니깐 range(1, N+1)로 돌면됩니다.
[5] 스테이지 도달 못하면 count = 0이면 fail = 0, 도달한 유저가 있다면 fail = count / length가 되죠.
[6] (현재 stage, 실패율 fail)을 answer에 저장합니다.
[7] 현재 도달한 인원은 다음 stage에서는 실패한 것이므로 length를 업데이트 해야겠죠
[8] 최종적으로 answer를 실패율 기준으로 sorted(answer, key=lambda t: t[1], reverse=True)로 내림차순 정렬하면 됩니다.
[9] 최종적으로는 원하는 인덱스 정보만 anwer에서 뽑으면 됩니다. [i[0] for i in answer]
다른 사람 풀이
[1] 저장하는 형태를 List가 아니라 Dictionary로 하여 {“stage_index” : 실패율}로 했습니다.
[2] sorted()의 결과는 List이므로 저의 풀이보다는 훨씬 깔끔하네요ㅎㅎ
'Algorithm' 카테고리의 다른 글
2018년 카카오 blind 코딩 테스트 - 무지의 먹방 라이브 python (1) | 2019.09.21 |
---|---|
2018년 카카오 blind 코딩 테스트 - 후보키 python (0) | 2019.09.21 |
2018년 카카오 blind 코딩 테스트 - 오픈채팅방 python (0) | 2019.09.21 |
programmers lv1 문자열 다루기 기본 python (0) | 2019.09.21 |
programmers lv1 문자열 내림차순으로 배치하기 python (0) | 2019.09.21 |