[ 문제 ]
영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요.
[ 제한사항 ]
- 0 ≤ score[0], score[1] ≤ 100
- 1 ≤ score의 길이 ≤ 10
- score의 원소 길이는 2입니다.
- score는 중복된 원소를 갖지 않습니다.
[ 입출력 예 ]
score | result |
[[80, 70], [90, 50], [40, 70], [50, 80]] | [1, 2, 4, 3] |
[[80, 70], [70, 80], [30, 50], [90, 100], [100, 90], [100, 100], [10, 30]] | [4, 4, 6, 2, 2, 1, 7] |
< 입출력 예 #1 >
- 평균은 각각 75, 70, 55, 65 이므로 등수를 매겨 [1, 2, 4, 3]을 return합니다.
< 입출력 예 #2 >
- 평균은 각각 75, 75, 40, 95, 95, 100, 20 이므로 [4, 4, 6, 2, 2, 1, 7] 을 return합니다.
- 공동 2등이 두 명, 공동 4등이 2명 이므로 3등과 5등은 없습니다.
[ 해결 방법 ]
1. 평균 값을 담는 리스트 avg, 정렬된 avg 리스트를 담는 리스트 avg_s, 등수를 담는 리스트 result 선언
2. score 리스트를 반복하면서 평균 값을 avg 리스트에 담음
3. avg_s에 avg를 내림차순으로 정렬한 리스트를 할당
4. avg 리스트를 반복하면서 해당 값이 avg_s에서의 인덱스에 1을 더한 값 (등수)를 result 리스트에 추가
5. result 반환
[ solution.py ]
def solution(score):
avg = []
avg_s = []
result = []
for i in score:
avg.append(sum(i) / 2)
avg_s = sorted(avg, reverse=True)
for i in avg:
result.append(avg_s.index(i) + 1)
return result
> 🌻피드백은 언제나 환영입니다🌻 <
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[PROGRAMMERS] 다항식 더하기 (LV. 0) - Python (0) | 2024.05.02 |
---|---|
[PROGRAMMERS] 저주의 숫자 3 (LV. 0) - Python (0) | 2024.05.02 |
[PROGRAMMERS] 무작위로 K개의 수 뽑기 (LV. 0) - Python (0) | 2024.05.02 |
[PROGRAMMERS] 조건 문자열 (LV. 0) - Python (0) | 2024.05.02 |
[PROGRAMMERS] 왼쪽 오른쪽 (LV. 0) - Python (0) | 2024.05.02 |