algorithm - 기초. 5명의 점수를 입력받아서 등수 출력하기

on under algorithm
3 minute read

입력:
점수를 입력하세요: 100
점수를 입력하세요: 94
점수를 입력하세요: 95
점수를 입력하세요: 81
점수를 입력하세요: 86

출력:


풀이

  1. 점수를 저장할 리스트를 선언하고 반복문을 통해 5명의 점수를 순차적으로 입력받습니다.
  2. 번호를 매길 변수를 선언합니다.
  3. 반복문을 중첩시켜서 첫 번째 요소부터 자기보다 값이 큰 요소가 나오면 순위를 메기기 위한 변수를 1씩 증가시켜줍니다.
  4. 같은 점수를 같은 등수로 표현하기 위해서 자신을 포함한 모든 요소를 상대로 반복문을 실행합니다.
>>> scores = []
>>> while not len(scores) == 5:
...     score = int(input("점수를 입력하세요: "))
...     scores.append(score)
...
점수를 입력하세요: 100
점수를 입력하세요: 94
점수를 입력하세요: 95
점수를 입력하세요: 81
점수를 입력하세요: 86
>>> seq = 0
>>> for s in scores:
...     seq += 1
...     rank = 1
...     for ss in scores:
...         if s < ss:
...             rank += 1
...     print("%d번째 선수의 점수는 %d점이고, 등수는 %d등 입니다." % (seq, s, rank))
...
1번째 선수의 점수는 100점이고, 등수는 1 입니다.
2번째 선수의 점수는 94점이고, 등수는 3 입니다.
3번째 선수의 점수는 95점이고, 등수는 2 입니다.
4번째 선수의 점수는 81점이고, 등수는 5 입니다.
5번째 선수의 점수는 86점이고, 등수는 4 입니다.
>>>

동점이 있을 경우

>>> scores = []
>>> while not len(scores) == 5:
...     score = int(input("점수를 입력하세요: "))
...     scores.append(score)
...
점수를 입력하세요: 100
점수를 입력하세요: 94
점수를 입력하세요: 92
점수를 입력하세요: 84
점수를 입력하세요: 100
>>> seq = 0
>>> for s in scores:
...     seq += 1
...     rank = 1
...     for ss in scores:
...         if s < ss:
...             rank += 1
...     print("%d번째 선수의 점수는 %d점이고, 등수는%d등입니다." % (seq, s, rank))
...
1번째 선수의 점수는 100점이고, 등수는1등입니다.
2번째 선수의 점수는 94점이고, 등수는3등입니다.
3번째 선수의 점수는 92점이고, 등수는4등입니다.
4번째 선수의 점수는 84점이고, 등수는5등입니다.
5번째 선수의 점수는 100점이고, 등수는1등입니다.
>>>
algorithm
comments powered by Disqus