본문 바로가기

알고리즘 & 코딩테스트/코딩테스트

Programmers Lv.1 "부족한 금액 계산하기"

Programmers Lv. 1 부족한 금액 계산하기, 위클리 챌린지, 정답률 80%

이 문제의 핵심은 1회 이용에 price원인 놀이기구를 N번째 사용하면 원래 이용료의 N배를 받기로 한 것이다.
놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마나 모자라는지 반환하는 것이다.

쉽게 생각하자. count번 타게 될 때 주어진 조건을 따져야하는거기 때문에 먼저 count번 놀이기구 탈 때의 이용료를 다 저장하자. 이를 누적합이라고 했을 때 주어진 money가 누적합보다 크면 금액이 부족하지 않다는 말이므로 0을 return하고, 아닐경우 누적합에서 money를 빼서 얼마나 모자라는지 그 차액을 return하자.

def solution(price, money, count):
    answer, tmp = -1, 0
    for cnt in range(1, count+1):
        tmp += cnt*price
    
    answer = 0 if money>tmp else (tmp-money)

    return answer