이 문제의 핵심은 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
'알고리즘 & 코딩테스트 > 코딩테스트' 카테고리의 다른 글
Programmers Lv.1 "행렬의 덧셈" (0) | 2023.05.22 |
---|---|
Programmers Lv.1 "문자열 다루기 기본" (0) | 2023.05.22 |
Programmers Lv.1 "약수의 개수와 덧셈" (0) | 2023.05.16 |
Programmers Lv. 1 "문자열 내림차순으로 배치하기" (0) | 2023.05.16 |
Programmers Lv.1 "내적" (0) | 2023.05.15 |