반응형
문제설명
시험 점수에 따라 학생의 순위를 매기려 합니다. 동점자 순위는 가능한 순위 중 가장 높은 순위로 매깁니다.
예를 들어 학생별 점수가 [90, 87, 87, 23, 35, 28, 12, 46]이면, 학생별 순위는 [1, 2, 2, 7, 5, 6, 8, 4]입니다.
모든 학생의 점수를 담은 리스트 score가 매개변수로 주어질 때, 순위를 담은 리스트를 return 하도록 solution 함수를 작성해주세요.
매개변수 설명
모든 학생의 점수를 담은 리스트 score가 solution 함수의 매개변수로 주어집니다.
* 학생 수는 1명 이상 1,000명 이하입니다.
* 점수는 1 이상 100 이하인 정수입니다.
return 값 설명
* 순위를 담은 리스트를 return 합니다.
예시
| score |return |
|---|---|
| [90, 87, 87, 23, 35, 28, 12, 46] | [1, 2, 2, 7, 5, 6, 8, 4] |
| [10, 20, 20, 30] | [4, 2, 2, 1] |
예시설명
예시 #1
문제에 나온 예와 같습니다.
예시 #2
이들의 순위는 [4, 2, 2, 1]입니다.
문제 코드
def solution(score):
# 여기에 코드를 작성해주세요.
answer = []
return answer
풀이 1
def solution(score):
answer = [1 for _ in range(len(score))]
# score끼리 비교해 작으면 등수 추가
for i in range(len(score)):
for j in range(len(score)):
if score[i] < score[j]:
answer[i] += 1
return answer
풀이 2
def solution(score):
answer = [0] * len(score)
for i in range(len(score)):
# score[i]보다 점수가 더 큰 학생수에 1을 더하면 등수
answer[i] = sum(map(lambda x:x > score[i], score))+1
return answer
댓글