▶ 문제
새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는
price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가
100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다.
놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록
solution 함수를 완성하세요.
단, 금액이 부족하지 않으면 0을 return 하세요.
- 제한 사항 -
놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수
처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수
놀이기구의 이용 횟수 count : 1 ≤ count ≤ 2,500, count는 자연수
이 문제는 놀이기구를 count
번 이용할 때 발생하는 총 비용을 계산하고, 현재 가지고 있는 금액 money
와 비교하여 얼마나 부족한지를 계산하는 문제입니다.
▶ 문제 해결 과정
- 총 이용료 계산
- 놀이기구의 원래 이용료는
price
원이고, N번째 이용할 때의 비용은price * N
입니다. - 예를 들어, 가격이 100원이고, 놀이기구를 3번 이용한다면 각각의 이용료는 100, 200, 300원입니다.
- 이때, 총 비용은
100 + 200 + 300 = 600원
이 됩니다. - 이 총 비용을 계산하기 위해
for
문을 사용하여count
번 반복하면서, 각 번의 이용료를 더해줍니다.
- 놀이기구의 원래 이용료는
- 부족한 금액 계산
- 총 비용을 계산한 후, 현재 가지고 있는 금액
money
에서 이 총 비용을 뺍니다. - 만약
money
가 더 크다면, 돈이 충분하기 때문에 부족한 금액은 0원이 됩니다. - 반면, 총 비용이 더 크다면 그 차액만큼이 부족한 금액이 됩니다.
- 총 비용을 계산한 후, 현재 가지고 있는 금액
- 결과 반환
- 계산된 부족한 금액을 반환합니다. 만약 부족한 금액이 없다면 0을 반환합니다.
▶ 소스코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
long long solution(int price, int money, int count) {
long long total_cost = 0;
// 총 이용료 계산
for(int i = 1; i <= count; i++) {
total_cost += price * i;
}
// 모자라는 금액 계산
long long deficit = total_cost - money;
// 만약 돈이 부족하지 않다면 0을 반환
if(deficit <= 0) {
return 0;
}
return deficit;
}
total_cost
는 놀이기구를count
번 이용했을 때의 총 비용을 저장합니다.for
문은 1부터count
까지 반복하면서 각 이용에 대한 비용을total_cost
에 더합니다.deficit
는 총 비용에서 현재 가진 돈money
를 뺀 값입니다.deficit
이 0 이하라면, 돈이 충분하다는 의미이므로 0을 반환하고, 그렇지 않다면 부족한 금액을 반환합니다.
'JAVA 알고리즘' 카테고리의 다른 글
(JAVA) 행렬 덧셈의 결과를 반환하는 함수 만들기 (0) | 2024.10.07 |
---|---|
(JAVA) 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수 만들기 (0) | 2024.09.27 |
(JAVA) 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수 (0) | 2024.09.25 |
(JAVA) 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 만들자 (0) | 2024.09.24 |
(JAVA) 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수 만들기 (0) | 2024.09.23 |