[프로그래머스] Level 1 - 부족한 금액 계산하기


문제

[프로그래머스] level 1 - 부족한 금액 계산하기


문제 설명 및 풀이

레벨 1이라 후딱 풀고 다음 레벨 가야지 하는 마음에 자꾸 대충 풀게 된다.

이 문제 또한 저번의 두 정수 사이의 합과 비슷하다.

이 역시, 가우스의 일화를 떠올려 볼 수 있다. 즉, 등차수열의 합으로 문제를 풀어낼 수 있다.

$ \sum^n_{i=1}(price \times count) = price * \frac {n(n+1)}{2} $


C++스러운 나의 코드

def solution(price, money, count):
    answer = -1
    num = 0
    idx = 1
    while count > 0:
        count -= 1
        num += price*idx
        idx += 1
    answer = max(num-money, 0)
    return answer

Pythonic한 풀이

def solution(price, money, count):
    return max(0,price*(count+1)*count//2-money)