Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Docker
- Baekjoon
- ChatGPT
- gs25
- SW Expert Academy
- 편스토랑
- dacon
- 캐치카페
- Kaggle
- github
- leetcode
- programmers
- 금융문자분석경진대회
- 파이썬
- Real or Not? NLP with Disaster Tweets
- 우분투
- 백준
- 맥북
- 자연어처리
- 프로그래머스
- AI 경진대회
- ubuntu
- Git
- 프로그래머스 파이썬
- 더현대서울 맛집
- hackerrank
- PYTHON
- 편스토랑 우승상품
- 코로나19
- 데이콘
Archives
- Today
- Total
솜씨좋은장씨
[Programmers] 2019 KAKAO BLIND RECRUITMENT 실패율 (Python) 본문
Programming/코딩 1일 1문제
[Programmers] 2019 KAKAO BLIND RECRUITMENT 실패율 (Python)
솜씨좋은장씨 2021. 2. 12. 00:43728x90
반응형
코딩 1일 1문제!
오늘의 문제는 프로그래머스의 2019 카카오 블라인드 채용 문제였던
실패율 입니다.
Solution
def solution(N, stages):
answer = []
fail_percent = {}
num_of_people = len(stages)
for i in range(1, N+1):
count = stages.count(i)
if num_of_people == 0:
fail_percent[i] = 0
else:
fail_percent[i] = count / num_of_people
num_of_people = num_of_people - count
answer = [stage[0] for stage in sorted(fail_percent.items(), key=lambda x: (-x[1], x[0]))]
return answer
Solution 풀이
먼저 각 스테이지별 실패율을 저장할 fail_percent dictionary를 하나 만들어 줍니다.
도전하는 사람의 수는 주어진 stages list의 길이와 같습니다.
1부터 주어진 숫자 N까지 반복을 하며 도전하는 사람들이 어느 스테이지에 멈추어 있는지 카운팅을 하고
이를 남아있는 사용자 수로 나누어 준 뒤 fail_percent에 넣어줍니다.
이 때 첫 번째 스테이지에서 모든 사용자들이 멈추어 있을 경우
그 후의 스테이지에서는 num_of_people이 0이 될 수 있으므로
그 경우에는 그냥 0을 넣어 주도록 합니다.
실패율을 내림차순으로 각 스테이지 기준으로 오름차 순 정렬을 하고 이때 각 스테이지만 리스트에 남기면
정답입니다.
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[Programmers] 문자열 내 마음대로 정렬하기 (Python) (0) | 2021.02.14 |
---|---|
[Programmers] 문자열 다루기 기본 (Python) (0) | 2021.02.13 |
[Programmers] 2021 KAKAO BLIND RECRUITMENT신규 아이디 추천 (Python) (0) | 2021.02.11 |
[HackerRank] Reverse a doubly linked list (Python) (0) | 2021.02.09 |
[HackerRank] Insert a node at a specific position in a linked list (Python) (0) | 2021.02.08 |
Comments