
문제
카쉐어링 서비스는 요금을 다음과 같이 계산한다.
A. 대여는 10분 단위로 가능하다.
B. 대여 요금 : 10분당 1,200원
C. 보험료 : 30분당 525원 (50분을 빌리면, 1시간으로 계산)
D. 주행 요금 : km당 170원 (주행 요금은 100km가 넘어가면, 넘어간 부분에 대하여 할인이 50% 적용)
예) 160km를 달렸으면, 170*100 + 85*60
양의 정수인 대여시간(분)과 주행거리를 받아 계산 결과를 반환하는 함수 fee()를 작성하시오.
참고 함수 math.ceil
- 예시
fee(600, 50) #=> 91000
fee(600, 110) #=> 10
풀이
def fee(a, b):
rlqhs = 0 # 기본료 변수 설정
if a % 10 > 0: # 기본료는 10분 단위이므로 11분 이용시 10분 * 1200 + 1200 형태로 두번의 10분 기본요금이 나감
rlqhs = ((a / 10) * 1200) + 1200
else:
rlqhs = (a / 10) * 1200
qhgja = 0
if a % 30 >= 20: # 이용시간이 50분을 넘어가는 경우. 즉, 보험료 단위인 30분을 나눈 몫이 20이 넘어가는 경우 추가함
qhgja = ((a / 30) * 525) + 525
else:
qhgja = (a / 30) * 525
wngod = 0
if b > 100: # 주행거리가 100km가 넘어가는 경우 총 주행거리에서 100을 뺀 값을 85로 곱하여 넣어줌
wngod = (100*170) + ((b-100) * 85)
else:
wngod = 170 * b
print(int(rlqhs + qhgja + wngod))
fee(600, 50)
후기
일단 math.ceil을 참고하여 사용하라 했는데 나는 사용을 안했다.
우선, 각 부분 요금(기본 요금, 주행 요금 등....)을 변수 0으로 설정해줬다.
그리고 각 추가 요금이 붙는 경우는 그냥 뒤에 그 추가요금을 더해주었다.
주석을 보면 해석할 수 있을 것.
'실습 문제' 카테고리의 다른 글
숫자로 사각형 만들기 (파이썬) (0) | 2022.07.30 |
---|---|
두 명씩 짝을 지어보자 클래스사용 (파이썬) (0) | 2022.07.28 |
콜라츠 추측(Collatz conjecture) 변형 (파이썬) (0) | 2022.07.27 |
무엇이 중복일까 ? (파이썬) (0) | 2022.07.26 |
같은 혈액형의 사람 수를 구하라(파이썬) (0) | 2022.07.25 |