문제

카쉐어링 서비스는 요금을 다음과 같이 계산한다.

 

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으로 설정해줬다.

그리고 각 추가 요금이 붙는 경우는 그냥 뒤에 그 추가요금을 더해주었다.

주석을 보면 해석할 수 있을 것.

복사했습니다!