[프로그래머스][C++] 부족한 금액 계산하기
부족한 금액 계산하기
문제 링크
분석
이용한 횟수에 비례해 증가하는 비용의 합을 구하고, 가지고 있는 돈을 차감해 부족한 금액을 구하면 됩니다.
이용한 횟수에 비례해 증가하는 비용의 합은 반복문으로 구할 수 있습니다.
혹은 등차수열을 구하는 공식인 가우스 합계를 사용해 구할 수 있습니다.
등차수열과 가우스 합계에 대한 설명은 다른 게시물에 정리했었습니다.
등차수열과 등차수열의 합
풀이
반복문을 사용한 방법입니다.
long long solution(int price, int money, int count)
{
long long answer = -1;
answer *= money;
for (int i = 1; i <= count; ++i)
{
answer += i * price;
}
if (answer < 0)
{
answer = 0;
}
return answer;
}
가우스 합계를 사용한 방법입니다.
long long solution(int price, int money, int count)
{
long long answer = -1;
long long totalCost = static_cast<long long>(price) * count * (count + 1) / 2;
answer = totalCost - money;
if (answer < 0)
{
answer = 0;
}
return answer;
}
성능 요약
반복문을 사용한 성능입니다.
테스트 1 〉 통과 (0.01ms, 4.21MB)
테스트 2 〉 통과 (0.01ms, 4.02MB)
테스트 3 〉 통과 (0.01ms, 4.15MB)
테스트 4 〉 통과 (0.01ms, 4.18MB)
테스트 5 〉 통과 (0.01ms, 4.2MB)
테스트 6 〉 통과 (0.01ms, 4.15MB)
테스트 7 〉 통과 (0.01ms, 4.22MB)
테스트 8 〉 통과 (0.01ms, 4.14MB)
테스트 9 〉 통과 (0.01ms, 4.21MB)
테스트 10 〉 통과 (0.01ms, 3.68MB)
테스트 11 〉 통과 (0.01ms, 3.68MB)
테스트 12 〉 통과 (0.01ms, 3.67MB)
테스트 13 〉 통과 (0.01ms, 4.02MB)
테스트 14 〉 통과 (0.01ms, 3.59MB)
테스트 15 〉 통과 (0.01ms, 4.14MB)
테스트 16 〉 통과 (0.01ms, 4.12MB)
테스트 17 〉 통과 (0.01ms, 4.13MB)
테스트 18 〉 통과 (0.01ms, 4.13MB)
테스트 19 〉 통과 (0.01ms, 4.17MB)
테스트 20 〉 통과 (0.01ms, 4.13MB)
테스트 21 〉 통과 (0.01ms, 4.25MB)
테스트 22 〉 통과 (0.01ms, 4.21MB)
테스트 23 〉 통과 (0.01ms, 4.21MB)
가우스 합계를 사용한 성능입니다.
테스트 1 〉 통과 (0.01ms, 4.2MB)
테스트 2 〉 통과 (0.01ms, 4.16MB)
테스트 3 〉 통과 (0.01ms, 4.2MB)
테스트 4 〉 통과 (0.01ms, 3.58MB)
테스트 5 〉 통과 (0.01ms, 4.22MB)
테스트 6 〉 통과 (0.01ms, 4.19MB)
테스트 7 〉 통과 (0.01ms, 4.16MB)
테스트 8 〉 통과 (0.01ms, 4.17MB)
테스트 9 〉 통과 (0.01ms, 4.16MB)
테스트 10 〉 통과 (0.01ms, 3.68MB)
테스트 11 〉 통과 (0.01ms, 4.19MB)
테스트 12 〉 통과 (0.01ms, 4.21MB)
테스트 13 〉 통과 (0.01ms, 3.6MB)
테스트 14 〉 통과 (0.01ms, 3.67MB)
테스트 15 〉 통과 (0.01ms, 4.21MB)
테스트 16 〉 통과 (0.01ms, 4.16MB)
테스트 17 〉 통과 (0.01ms, 4.21MB)
테스트 18 〉 통과 (0.01ms, 4.21MB)
테스트 19 〉 통과 (0.01ms, 4.15MB)
테스트 20 〉 통과 (0.01ms, 4.18MB)
테스트 21 〉 통과 (0.01ms, 4.2MB)
테스트 22 〉 통과 (0.01ms, 4.14MB)
테스트 23 〉 통과 (0.01ms, 3.66MB)
댓글남기기