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

[COS PRO 2급 #5-3] 벌금 구하기

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

문제설명

모든 속도위반 차량이 낼 벌금이 총 몇만 원인지 알아내려 합니다. 벌금을 매기는 기준은 다음과 같습니다.

| 기준                     | 벌금  |
|---------------------------------|-------|
| 규정 속도 10% 이상 20% 미만 위반 | 3만 원 |
| 규정 속도 20% 이상 30% 미만 위반 | 5만 원 |
| 규정 속도 30% 이상 위반   | 7만 원 |

예를 들어 규정 속도가 100인 도로를 112로 달렸다면 규정 속도를 12% 위반하였습니다. 따라서 규정 속도를 10% 이상 20% 미만 위반하였으므로 벌금 3만 원을 부과합니다.

규정 속도 speed와 도로를 달리는 모든 차의 속도가 담긴 리스트 cars가 매개변수로 주어질 때, 총벌금은 몇만 원인지 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.

매개변수 설명

규정 속도 speed와 도로를 달리는 모든 차의 속도가 담긴 리스트 cars가 solution 함수의 매개변수로 주어집니다.
* 규정 속도는 30 이상 140 이하이며, 10으로 나누어 떨어지는 숫자입니다.
* 도로를 달리는 차의 수는 1대 이상 40대 이하입니다.
* 모든 차는 0km/h 이상 200km/h 이하로 달립니다.

return 값 설명

도로를 달리는 모든 차의 벌금은 총 몇만 원인지 return 해주세요.

예시

| speed | cars                        | return |
|-------|------------------------------------|--------|
| 100   | [110, 98, 125, 148, 120, 112, 89] | 23     |

예시설명

| 기준                          | 위반 차량 | 총벌금 |
|----------------------------------|-----------|---------|
| 규정 속도 10% 이상 20% 미만 위반 | 2대    | 6만원   |
| 규정 속도 20% 이상 30% 미만 위반 | 2대    | 10만원  |
| 규정 속도 30% 이상 위반       | 1대    | 7만원   |

문제 코드

def solution(speed, cars):
    answer = 0
    for x in cars:
        if x >= speed * 11 / 10 and x < speed * 12 / 10:
            answer += 3
        elif x >= @@@ and x < @@@:
            answer += 5
        elif x >= @@@:
            answer += 7
    return answer

풀이

def solution(speed, cars):
    answer = 0
    for x in cars:
        if x >= speed * 11 / 10 and x < speed * 12 / 10:
            answer += 3
        # 규정 속도 20% 이상 30% 미만으로 달리면 벌금 5만원
        elif x >= speed*1.2 and x < speed*1.3:
            answer += 5
        # 규정 속도 30% 이상으로 달리면 벌금 7만원
        elif x >= speed*1.3:
            answer += 7
    return answer

댓글