using namespace std;
long long solution(int price, int money, int count)
{
long long answer = (long long)price * ((long long)count * ((long long)count + 1) / 2);
return (money < answer) ? answer - money : 0;
}
해결방법
- 매 번째의 금액이 횟수만큼 늘어난다.
- 1 * price + 2 * price + 3 * price.... 이렇게 1~n까지의 합을 구하는 방법을 통해 수식으로 풀게되었다.
n * (n + 1) / 2 여기서 price와 count가 2500, 2500이 되어 계산 가능한 범위를 넘을 수 있으므로 형변환을 하여 풀었다.
- 삼항 연산자를 이용하여 코드를 더욱 간결하게 한다. (왼쪽부터 참, 거짓)
https://programmers.co.kr/learn/courses/30/lessons/82612?language=cpp
'Algorithm > Programmers' 카테고리의 다른 글
[C++] 프로그래머스 실패율 (0) | 2021.09.23 |
---|---|
[C++] 프로그래머스 위클리챌린지 2주차 상호평가 (0) | 2021.09.17 |
[C++] 프로그래머스 등굣길 DP (0) | 2021.05.10 |
[C++] 프로그래머스 보석 쇼핑 2020카카오인턴십 [미완] (0) | 2021.05.10 |
[C++] 프로그래머스 오픈채팅방 2019카카오블라인드 (0) | 2021.05.10 |