새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다.
놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요.
단, 금액이 부족하지 않으면 0을 return 하세요.
프로그래머스 파이썬 예제에 문장형 문제가 나왔다.
def solution(price, money, count):
m_for_pay = count * price # 지불해야 할 금액
deficient_m = money - m_for_pay # 모자란 금액
if m_for_pay < money:
deficient_m = 0
#answer = 0
return deficient_m
지불해야 할 금액
변수에서 count가 증가할수록 지불해야 할 금액
이 누적되어 증가하는 조건을 반영하지 못했다.def solution(price, money, count):
m_for_pay = count * price
for i in price*count:
m_for_pay += i
deficient_m = money - m_for_pay
if m_for_pay < money:
deficient_m = 0
return deficient_m
def solution(price, money, count):
m_for_pay = 0
for i in range(1, count+1):
money -= price*i
if price*i < money:
money = 0
return money
money
변수를 자체를 0으로 만들고 money
변수를 return 하는 건 좋지 않은 방식이다.def solution(price, money, count):
m_for_pay = 0
for i in range(1, count+1):
m_for_pay += price*i
money -= m_for_pay
if money > 0 :
return 0
return money
money
변수가 음수가 되었다.def solution(price, money, count):
m_for_pay = 0
for i in range(1, count+1):
m_for_pay += price*i
money -= m_for_pay
if money > 0 :
return 0
return abs(money)
abs()
을 사용하여 return하도록 했다.def solution(price, money, count):
m_for_pay = 0
for i in range(1, count+1):
m_for_pay += price*i
return max(m_for_pay - money, 0)
max()
함수를 이용하여 조금 더 직관적으로 보이도록 했다.