다른 수의 참가자에 대한 점수 목록이 있다고 가정합니다. 준우승 점수를 찾아야 합니다.
따라서 입력이 점수 =[5,8,2,6,8,5,8,7]과 같으면 승자 점수가 8이고 두 번째로 큰 점수가 7이기 때문에 출력은 7이 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- 승자 :=-99999
- 2위 :=-99999
- 점수의 각 i에 대해 다음을 수행합니다.
- 내가> 승자라면
- 승자 :=나
- runner_up :=우승자
- 그렇지 않으면 i <우승자 및 i> runner_up일 때
- 우승자 :=나
- 내가> 승자라면
- 2위 반환
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다.
def solve(scores): winner = -99999 runner_up = -99999 for i in scores: if (i > winner): winner, runner_up = i, winner elif (i < winner and i > runner_up): runner_up = i return runner_up scores = [5,8,2,6,8,5,8,7] print(solve(scores))
입력
[5,8,2,6,8,5,8,7]
출력
7