728x90
반응형
문제
시험 점수에 따라 학생의 순위를 매기려 합니다. 동점자 순위는 가능한 순위 중 가장 높은 순위로 매깁니다.
예를 들어 학생별 점수가 [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] |
Python
#5-2-9
def findIndex(list, x):
for y in range(len(list)):
if list[y]==x:
return y
return -1
def solution(scores):
#처음 상태 저장
init_scores = []
for x in scores:
init_scores.append(x)
#정렬된 상태 만들기
sort =[]
for idx in range(len(scores)):
k=0
for i in range(len(scores)):
if k < scores[i]:
k = scores[i]
sort.append(k)
scores.remove(k)
#정렬된 상태에서 하나씩 꺼내어
#처음 상태에 몇번째에 있던 아이인지
#하나씩 찾아서 그 위치 저장하기
result = []
for i in range(len(init_scores)):
z = findIndex(init_scores, sort[i]) + 1
#z=init_scores.index(sort[i])+1
result.append(z)
return result
print(solution( [90,87,87,23,35,28,12,46] ))
#[1, 2, 2, 8, 5, 6, 4, 7]
728x90
반응형
'Algorithm Problems' 카테고리의 다른 글
[Cos Pro 1급] 3차 5번 - 암스트롱 수 (자아도취 수/ 나르시시즘 수) (0) | 2021.02.14 |
---|---|
[Cos Pro 2급] 5차 10번 - 교대 근무 일등 (0) | 2021.02.07 |
[Cos Pro 2급] 4차 1번 - 사다리타기 (0) | 2021.02.06 |
에라토스테네스의 체 - pygame으로 설명 (0) | 2021.02.04 |
[Cos Pro 1급] 3차 3번 - 비숍 (0) | 2021.02.02 |