[Programming_Test] 부족한 금액 계산하기

August 07 2021

부족한 금액 계산하기

  • Programmers

  • Level1

  • Language : Python

💡문제 보러 가기


Python 소스코드

def solution(price, money, count):
    # 횟수에 따른 가격을 list에 저장
    price_list = [price * i for i in range(1,count+1) ]
    # 가진 돈에서 사용한 돈을 뺀다
    remain = money - sum(price_list)
    # 남은 돈이 0보다 작을 경우, 필요한 액수를 반환
    # 남은 돈이 0보다 클 경우,  0을 반환
    answer = abs(remain * (remain < 0))
    return answer

다른 사람의 풀이

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

⭐내가 몰랐던 부분

1씩 증가하는 등차수열의 합 공식이용

  • 이 방법을 사용하면 배열을 만들 필요가 없습니다

$(price \times 1) + (price \times 2) + … + (price \times (count -1 )) + (price \times count) $

= $price * (1 + 2 + … + (count-1) + count)$

= $price \times \frac{ (count + 1) \times count}{2}$

max()에 두개 이상의 인자를 지정하면 두개의 인자 중에서 큰 값으로 반환합니다.

이번문제는 쉬웠지만 수학공식과 내장함수사용의 중요성에 대해 깨달았습니다.

Leave a comment