반응형
문제설명
상수도 요금을 계산하려 합니다. 가정용 상수도 사용요금 계산방법은 아래와 같습니다.
| 단계 | 사용량 | 요금 |
|-------|-----------|-------|
| 1단계 | 0~20톤 | 430원 |
| 2단계 | 21~30톤 | 570원 |
| 3단계 | 31톤 이상 | 840원 |
사용료는 사용량에 따라 단계별로 적용됩니다. 예를 들어, 물을 35톤 사용했다면 다음과 같은 방식으로 계산합니다.
```
* 1단계 적용 : 20톤 x 430원 = 8,600원
* 2단계 적용 : 10톤 x 570원 = 5,700원
* 3단계 적용 : 5톤 x 840원 = 4,200원
총 사용요금 : 18,500원
```
상수도 사용량 usage가 매개변수로 주어질 때, 사용요금을 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 **한 줄**만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
매개변수 설명
상수도 사용량 usage가 solution 함수의 매개변수로 주어집니다.
* 상수도 사용량은 0톤 이상 100톤 이하인 정수입니다.
return 값 설명
사용요금을 return 해주세요.
예시
| usage | return |
|-------|--------|
| 35 | 18500 |
예시설명
문제에 나온 예와 같습니다.
문제 코드
def solution(usage):
answer = 0
if usage > 30:
answer = 20 * 430 + 10 * 570 + (usage - 20) * 840
elif usage > 20:
answer = 20 * 430 + (usage - 20) * 570
else:
answer = usage * 430
return answer
풀이
def solution(usage):
answer = 0
# 1단계 적용 구간에서는 20톤*430원 or 사용량*430원
# 2단계 적용 구간에서는 10톤*570원 or (사용량-20)*570원
# 3단계 적용 구간에서는 (사용량-30)*840원
if usage > 30:
answer = 20 * 430 + 10 * 570 + (usage - 30) * 840
elif usage > 20:
answer = 20 * 430 + (usage - 20) * 570
else:
answer = usage * 430
return answer
댓글