320x100
# 순위 알고리즘 2
# 알파벳 문자들과 정수들에 대한 순위를 정하는 프로그램을 순위 알고리즘을 이용해서 만들자
# 단, 알파벳은 아스키코드 값을 이용한다.
datas = [32,'a','z',45,'G',39,50,'T','t',22,31,55,'s',63,59,'E']
print(f'datas: {datas}')
# 반복문 돌리면서 문자가 발견되면 ascIIDatas에 넣어주기
ascIIDatas = []
for data in datas:
# 알파벳이냐 아니냐
# 그리고 이 if는 datas에 있는 모든 숫자를 ascIIDatas에 넣어주는게 목적이다.
# 만약 문자라면 숫자로 전환해서 ascIIDatas에 넣어주는게 목적이다.
# 하지만 data.isalpha()라고 했을때 문자 외의 숫자는 확인 에러가 생기니깐
# 그것을 방지하기 위해서 data값에 대해서 str처리를 해준다.
if str(data).isalpha():
# 알파벳이라면 아스키코드로 전환해서 넣어줘라
ascIIDatas.append(ord(data))
# 여기 if문에 해당되었을때 밑으로 빠져서 그냥 숫자가 바로 추가되면안되니깐
# 이걸 해줘야한다. 그러므로 다시 for문으로 올라간다.
continue
# 숫자라면 그냥 추가해줘라
ascIIDatas.append(data)
print(f'ascIIDatas: {ascIIDatas}')
print()
ranks = [0 for i in range(len(ascIIDatas))]
print(f'ranks before: {ranks}')
print()
for idx, data1 in enumerate(ascIIDatas):
for data2 in ascIIDatas:
if data1 < data2:
ranks[idx] += 1
print(f'ranks after: {ranks}')
for i, d in enumerate(datas):
# {d:>2}는 오른쪽정렬기준으로 2자리 라는 뜻
print(f'data: [{d:>2}] \t rank: {ranks[i]+1}')
300x250
'개발일지 > Python' 카테고리의 다른 글
[말랑말랑 알고리즘] 3자리의 각 자리숫자를 더해주는 기초 (0) | 2022.05.28 |
---|---|
파이썬 근사값 알고리즘으로 수심에 가까운 수온출력 (0) | 2022.05.22 |
** 파이썬 최빈값 알고리즘1, 빈도수에 따라서 +표시출력 (0) | 2022.05.22 |
**파이썬 재귀 알고리즘으로 1년의 매출 증감액 표시 (재귀 알고리즘 기초원리) (0) | 2022.05.22 |
파이썬 최대값 알고리즘 (0) | 2022.05.21 |