가우스 법칙 이용하기

Subin·2024년 9월 11일

Algorithm

목록 보기
32/69

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

profile
성장하며 꿈꾸는 삶을 살아가고 있는 대학생입니다😊

0개의 댓글