본문 바로가기
Python/알고리즘

[COS PRO 2급 #5-4] 선수가 획득한 점수를 구해주세요

by 포푸리 (POPOOLY) 2023. 1. 31.
반응형

문제설명

종목은 태권도, 500m 달리기, 사격 경기를 하려 합니다. 종목별 점수 산출 방식은 다음과 같습니다.

| 종목     | 점수 산출 방식                                                                      |
|-------------|----------------------------------------------------------------------------------------|
| 태권도   | 25경기 이상 승리하면 250점. 그 외에는 승리당 8점               |
| 500m 달리기 | 60초에 완주 시 250점. 그보다 빠르면 1초당 +5점 느리면 1초당 -5점                     |
| 사격     | 10번 사격해 과녁에 적힌 숫자의 합만큼 점수 획득. 7번 이상 10점에 맞추면 추가 점수 100점  |

태권도에서 승리한 횟수 taekwondo, 달리기 기록 running, 사격 기록이 담긴 리스트 shooting이 매개변수로 주어질 때, 이 선수가 획득한 총점수를 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.

매개변수 설명

태권도에서 승리한 횟수 taekwondo, 달리기 기록 running, 사격 기록이 담긴 리스트 shooting이 solution 함수의 매개변수로 주어집니다.
* 태권도에서는 0회 이상 35회 이하 승리할 수 있습니다.
* 달리기 기록은 초 단위이며 40 이상 120 이하인 정수입니다.
* 사격은 총 10번 하며, 과녁에는 0부터 10까지의 숫자가 적혀있습니다.

return 값 설명

이 선수가 획득한 총점수를 return 해주세요.

예시

| taekwondo | running | shooting                           | return |
|-----------|---------|---------------------------------------|--------|
| 27     | 63   | [9, 10, 8, 10, 10, 10, 7, 10, 10, 10] | 679 |

예시설명

태권도에서 25회 이상 승리했기 때문에 250점을 획득했습니다.
달리기에서 60초보다 3초 느렸기 때문에 250점에서 15점을 뺀 235점을 획득했습니다.
사격에서 과녁을 맞혀 94점을 받았고, 10점을 7번 맞췄기 때문에 추가 점수 100점을 받아 총 194점을 획득했습니다.
따라서 이 선수가 받은 총점수는 679점입니다.

문제 코드

def solution(taekwondo, running, shooting):
    answer = 0
    if taekwondo >= 25:
    	answer += @@@
    else:
    	answer += taekwondo * 8
    answer += 250 + (60 - running) * 5
    count = 0
    for s in shooting:
    	answer += s
    	if s == 10:
    		count += 1
    if count >= 7:
    	answer += @@@
    return answer

풀이

def solution(taekwondo, running, shooting):
    answer = 0
    # 25경기 이상 승리하면 250점
    if taekwondo >= 25:
    	answer += 250
    else:
    	answer += taekwondo * 8
        
    # 500m 달리기 점수
    answer += 250 + (60 - running) * 5
    count = 0
    
    # 사격 점수
    for s in shooting:
    	answer += s
    	if s == 10:
    		count += 1
    # 7번 이상 10점을 맞추면 추가 점수 100점
    if count >= 7:
    	answer += 100
    return answer

댓글