1. 실패율
- 난이도
- 하
- 풀이 시간
- 20분
- 시간 제한
- 1초
- 메모리 제한
- 128 MB
- 출처
A. 📜 문제
- 하
- 20분
- 1초
- 128 MB
위 프로그래머스 사이트에 접속하여 문제를 확인해주세요.
B. 💡 내 답안
a. 😊 1차 시도 (성공)
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. 책 답안
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. 책 답안
내 풀이
- 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수
- 스테이지에 도달한 플레이어 수
반성
이해한 내용을 바탕으로 작성했습니다.
- 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수
- 이것은 stages 변수에 들어있는 값을 count해주면 된다.
- 스테이지에 도달한 플레이어 수
- 이것은 0부터 각각의 stages 변수에 들어있는 값까지 반복문을 돌려서 count하면 된다.
- 실패율 계산하기
- 실패율 리스트를 만들 때는 현재 stage 번호를 실패율과 같이 포장해야 한다. (리스트로 만들어야 한다.)
a. 책 답안
python-for-coding-test/3.py at master · ndb796/python-for-coding-test (github.com)
참고문헌
[1] 나동빈, "이것이 취업을 위한 코딩 테스트다 with 파이썬", 초판, 2쇄, 한빛미디어, 2020년
[2] 위클리 챌린지.코딩테스트 연습 - 실패율 | 프로그래머스 (programmers.co.kr). Programmers. (accessed Oct 8, 2021)
Ghost