n부터 n+a까지 더하는 문제를 풀었는데,
나는 반복문으로 풀었었다.
using namespace std;
long long solution(int price, int money, int count)
{
long long total = 0;
for(int i=1; i<= count; i++)
{
total += price*i; //price*1 + price*2 + ... + price*count
}
if(total > money)
return total - money;
else
return 0;
}
근데 다른 사람 풀이를 보니, 가우스 법칙을 이용할 수 있는 문제였다.
#include <bits/stdc++.h>
using namespace std;
long long solution(int price, int money, int count)
{
long long required = 1LL * price * count * (count + 1) / 2;
return required <= money ? 0 : required - money;
}
price x (1+2+...+count) = price x (count x (count+1))/2