제로베이스/알고리즘

Algorithms. 순위

진주네카라 2021. 11. 29. 23:54
728x90

 

 

Information

순위는 수를 비교해 차례, 순서, 서열 등을 나타내는 위치이다.

 

 

 


순위

  • Ranking
  • 복잡한 정보를 평가하는 것이 가능하다.

 

 

 

 

 

구현

 

1

import random

datas = random.sample(range(50, 101), 5)
ranks = [0 for i in range(5)]	# 5번 반복해 값을 0으로 초기화

for idx, val1 in enumerate(datas):
    for val2 in datas:
        if val1 < val2:
            ranks[idx] += 1

print(f'점수: {datas}')
print(f'순위: {ranks}')

for idx, val in enumerate(datas):
    print(f'점수: {val} \t 순위: {ranks[idx] + 1}')

 

 

출력

점수: [78, 66, 54, 60, 93]
순위: [1, 2, 4, 3, 0]
점수: 78 	 순위: 2
점수: 66 	 순위: 3
점수: 54 	 순위: 5
점수: 60 	 순위: 4
점수: 93 	 순위: 1

 

 

val1, val2를 비교해 더 작은 값을 가지는 인덱스와 같은 ranks에 1을 더한다.

나열된 리스트 순서로 순위를 나타 낼 수 있다.

 

 

 

2

 

import random

datas = random.sample(range(50, 101), 5)
ranks = [0 for i in range(5)]

nums_sort = datas
nums_sort.sort(reverse=True)
for idx, val in enumerate(nums_sort):
    print(f'순위: {idx + 1} \t 점수: {val}')

 

 

출력

순위: 1 	 점수: 93
순위: 2 	 점수: 78
순위: 3 	 점수: 66
순위: 4 	 점수: 60
순위: 5 	 점수: 54

 

 

파이썬 sort 함수를 이용해 내림차순 정렬을 하면 

인덱스에 1을 더한 값이 순위가 된다. 더 간단하고 보기쉽게 정리할 수 있다.

 

 

 

 

 

 

 

728x90