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
- Baekjoon
- 편스토랑 우승상품
- Kaggle
- 편스토랑
- gs25
- leetcode
- hackerrank
- 금융문자분석경진대회
- 우분투
- github
- 캐치카페
- 프로그래머스 파이썬
- 코로나19
- ubuntu
- 파이썬
- Docker
- programmers
- 더현대서울 맛집
- 프로그래머스
- Real or Not? NLP with Disaster Tweets
- Git
- dacon
- SW Expert Academy
- 백준
- AI 경진대회
- PYTHON
- 자연어처리
- ChatGPT
- 데이콘
- 맥북
Archives
- Today
- Total
솜씨좋은장씨
[Programmers] 등수 매기기 (Python) 본문
728x90
반응형
코딩 1일 1문제! 오늘의 문제는 백준의 등수 매기기 입니다.
👨🏻💻 문제 풀이
1. 각 학생의 평균 점수를 담은 리스트를 만들어 줍니다.
avg_score_list = [(sum(score) / len(score)) for score in score_list]
2. 이 평균 점수 리스트를 내림차순 한 리스트를 활용하여 평균 점수를 key 값으로 rank 정보를 value 값으로 한 dictionary 를 만들어 줍니다.
def make_rank_dict(avg_score_list):
rank_dict = {}
set_score_list = sorted(avg_score_list, reverse=True)
for rank, score in enumerate(set_score_list, start=1):
if score in rank_dict:
continue
rank_dict[score] = rank
return rank_dict
평균 점수 리스트를 내림차순 한 리스트를 만들때에는 sorted( reverse=True ) 를 사용했습니다.
set_score_list = sorted(avg_score_list, reverse=True)
enumerate 를 활용하여 리스트에서 하나씩 꺼내올때
for rank, score in enumerate(set_score_list, start=1):
idx 값을 같이 반환 하도록 하고 이 idx 값을 rank 정보로 활용하였습니다.
이애 start = 1 옵션을 주어 idx 가 1부터 시작되도록 하였습니다.
if score in rank_dict:
continue
dictionary 를 만들때 이미 dictionary 에 key 값으로 사용한 점수인 경우 continue 로 넘어가도록 하였습니다.
rank_dict = make_rank_dict(avg_score_list=avg_score_list)
3. 평균 점수를 리스트에서 하나씩 꺼내와 이 값을 key 값으로 rank 정보를 담은 dictionary 에서 rank 정보를 꺼내어옵니다.
[rank_dict[avg_score] for avg_score in avg_score_list]
👨🏻💻 코드 ( Solution )
def make_rank_dict(avg_score_list):
rank_dict = {}
set_score_list = sorted(avg_score_list, reverse=True)
for rank, score in enumerate(set_score_list, start=1):
if score in rank_dict:
continue
rank_dict[score] = rank
return rank_dict
def solution(score_list):
avg_score_list = [(sum(score) / len(score)) for score in score_list]
rank_dict = make_rank_dict(avg_score_list=avg_score_list)
return [rank_dict[avg_score] for avg_score in avg_score_list]
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[Programmers] 잘라서 배열로 지정하기 (Python) (0) | 2023.02.11 |
---|---|
[BaekJoon] 25957번 : 단어 우월 효과 (캠브릿지 대학의 연구결과) (Python) (0) | 2023.02.10 |
[BaekJoon] 27433번 : 팩토리얼 2 (Python) (0) | 2023.02.06 |
[BaekJoon] 25775번 : Letter Frequency (Python) (0) | 2023.02.05 |
[Programmers] 둘만의 암호 (Python) (0) | 2023.02.04 |
Comments