본문 바로가기

Python

[python] 파이썬 응용 - 등수 비교 (에티버스러닝 - 멀티 클라우드 엔지니어 교육 5주차)

에티버스러닝의 K-Digital Training의 멀티 클라우드 엔지니어 교육의 파이썬 기본 강의를 수강하면서 작성한 것이다. 

 

 

 

수업 마지막 날, 가장 어려운 코드가 있었다. 바로 등수를 비교하는 프로그램을 짜는 것이었다. 

강사님께서 가장 짧게 짜는 사람은 무려 4줄만에 코드를 구현했다고 하셨다.  

 

#실행 순서
# 1. 평균이 구해졌을 때 자동으로 등수가 입력되는 프로그램을 기획합니다. 
# 2. 지금까지 배운 조건문과 반복문을 사용해서 등수를 구합니다.
# 3. 가급적 짧은 코드로 구현합니다.
#동점자를 고려한다. 

exam = [{'num': '1', 'name': '김철수', 'kor': 90, 'eng': 80, 'math': 85, 'total':255, 'avg':85.0, 'order':0 },
  {'num': '2', 'name': '박제동', 'kor': 90, 'eng': 85, 'math': 90, 'total':265, 'avg':88.3, 'order':0 },
  {'num': '3', 'name': '홍길동', 'kor': 80, 'eng': 80, 'math': 80, 'total':4240, 'avg':80.0, 'order':0 }]

max = 0
for i in range(len(exam)):
  exam[i]['avg'] = ((exam[i]['kor'] + exam[i]['eng'] + exam[i]['math'])/3)
  exam[i]['total'] = exam[i]['kor'] + exam[i]['eng'] + exam[i]['math']



for i in range(len(exam)):
  exam[i]['order'] += 1
  for j in range(i+1, len(exam)):
    if exam[i]['total'] > exam[j]['total']:
      exam[j]['order'] += 1
    elif exam[i]['total'] < exam[j]['total']:
      exam[i]['order'] += 1

print(exam)

 

아래의 for문이 등수를 비교하는 부분이다.