# [이.취.코] [프로그래머스] Chap 14. 정렬 - Q25. 실패율

- Author: @mildsalmon
- Published: 2021-10-07
- Updated: 2021-10-07
- Source: http://blex.me/@mildsalmon/%EC%9D%B4%EC%B7%A8%EC%BD%94-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-chap-14-%EC%A0%95%EB%A0%AC-q25-%EC%8B%A4%ED%8C%A8%EC%9C%A8
- Tags: 파이썬, 알고리즘, 프로그래머스, 한빛미디어, 나동빈, 코딩테스트, 문제, 풀이, 정렬

---

# 1. 실패율

- 난이도
	- 하
- 풀이 시간
	- 20분
- 시간 제한
	- 1초
- 메모리 제한
	- 128 MB
- 출처
	- [코딩테스트 연습 - 실패율 | 프로그래머스 (programmers.co.kr)](https://programmers.co.kr/learn/courses/30/lessons/42889)

### A. 📜 문제

위 프로그래머스 사이트에 접속하여 문제를 확인해주세요.

### B. 💡 내 답안

##### a. 😊 1차 시도 (성공)

```python

def solution(N, stages):
    # fail_per = [0] * (N + 1)
    no_clear = [0] * (N + 1)
    player_count = [0] * (N + 1)
    answer = []

    for stage in stages:
        no_clear[stage - 1] += 1

        for i in range(stage):
            player_count[i] += 1

    fail_per = [0] * (N + 1)

    for i in range(N + 1):
        if no_clear[i] == 0 or player_count[i] == 0:
            fail_per[i] = [i, 0]
        else:
            fail_per[i] = [i, (no_clear[i] / player_count[i])]

    fail_per = fail_per[:N]
    fail_per.sort(reverse=True, key=lambda x: [x[1], -x[0]])

    for i in fail_per:
        answer.append(i[0] + 1)

    return answer

# 16분
solution(5, 	[2, 1, 2, 6, 2, 4, 3, 3])

```

##### b. 🙄 회고

> 내 풀이

- 실패율에 필요한 플레이어의 수를 구하고 실패율을 계산하였다.
	- 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수
	- 스테이지에 도달한 플레이어 수
- result로 필요한 값은 스테이지 번호이기 때문에 실패율을 계산할 때는 스테이지 번호와 실패율을 1차원 리스트로 생성하여 실패율 리스트에 포함시켰다.

> 반성

- 리스트의 **count**메소드를 사용했으면 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수를 구할 수 있었을텐데.

### C. 🧐 문제 해설

> 이해한 내용을 바탕으로 작성했습니다.

- 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수
	- 이것은 **stages 변수**에 들어있는 값을 count해주면 된다.
- 스테이지에 도달한 플레이어 수
	- 이것은 0부터 각각의 **stages 변수**에 들어있는 값까지 반복문을 돌려서 count하면 된다.
- 실패율 계산하기
	- 실패율 리스트를 만들 때는 현재 stage 번호를 실패율과 같이 포장해야 한다. (리스트로 만들어야 한다.)

##### a. 책 답안

[python-for-coding-test/3.py at master · ndb796/python-for-coding-test (github.com)](https://github.com/ndb796/python-for-coding-test/blob/master/14/3.py)

# 참고문헌

[1] 나동빈, "이것이 취업을 위한 코딩 테스트다 with 파이썬", 초판, 2쇄, 한빛미디어, 2020년

[2] 위클리 챌린지.[코딩테스트 연습 - 실패율 | 프로그래머스 (programmers.co.kr)](https://programmers.co.kr/learn/courses/30/lessons/42889). Programmers. (accessed Oct 8, 2021)
