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 |
Tags
- 더현대서울 맛집
- PYTHON
- 파이썬
- leetcode
- gs25
- 편스토랑 우승상품
- Baekjoon
- 코로나19
- programmers
- Git
- 캐치카페
- AI 경진대회
- 편스토랑
- github
- dacon
- hackerrank
- 프로그래머스
- Real or Not? NLP with Disaster Tweets
- 데이콘
- 프로그래머스 파이썬
- 우분투
- Docker
- ubuntu
- SW Expert Academy
- Kaggle
- 맥북
- 백준
- 자연어처리
- ChatGPT
- 금융문자분석경진대회
Archives
- Today
- Total
솜씨좋은장씨
[Programmers] 등수 매기기 (Python) 본문
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 등수 매기기 입니다.
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
👨🏻💻 문제 풀이
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]
GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07
1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.
github.com
'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 |