문제: 부족한 금액 계산하기
새로 이용할 때마다, 이용료가 N배씩 증가하므로, 반복문을 이용해 문제를 해결했었다.
먼저, 더 익숙한 Javascript로 구현하고, 이를 python으로 변환했다.
JS 버전
function solution(price, money, count) {
let answer = -1;
let payment = 0;
for (let i = 0; i <= count; i++) {
payment += price * i;
}
answer = money > payment ? 0 : payment - money;
return answer;
}
Python 버전
def solution(price, money, count):
answer = -1
payment = 0
for i in range(count + 1):
payment += price * i
answer = 0 if money > payment else payment - money
return answer
python에서 지원하는 내장 함수 sum
과 max
를 활용해서 아래와 같이 수정했다.
def solution(price, money, count):
total_payment = sum(price * i for i in range(1, count + 1))
return max(0, total_payment - money)
내장 함수를 활용하면 좀 더 간결하게 함수를 작성할 수 있음을 배웠다 :)