백준 10156번 / B4 / C++
문제주소 : https://www.acmicpc.net/problem/10156
문제이름 : 과자
문제번호 :10156
난이도 : B4
소요시간 : 1m 12s
과자 성공
1 초 | 256 MB | 34941 | 22067 | 20235 | 63.272% |
문제
동수는 제과점에 과자를 사러 가는데 현재 가진 돈이 모자랄 경우 부모님께 모자란 돈을 받으려고 한다. 과자 한 개의 가격이 K, 사려고 하는 과자의 개수가 N이고, 현재 가진 돈의 액수를 M이라 할 때 여러분은 동수가 부모님께 받아야 하는 모자란 돈을 계산하려고 한다.
예를 들어, 과자 한 개의 가격이 30원, 사려고 하는 과자의 개수가 4개, 현재 동수가 가진 돈이 100원이라 할 때, 동수가 부모님께 받아야 하는 돈은 20원이다. 과자 한 개의 가격이 250원, 사려고 하는 과자의 개수가 2개, 현재 동수가 가진 돈이 140원이라 할 때, 동수가 부모님께 받아야 하는 돈은 360원이다. 과자 한 개의 가격이 20원, 사려고 하는 과자의 개수가 6개, 현재 동수가 가진 돈이 120원이라 할 때 동수가 부모님께 받아야 하는 돈은 0원이다. 과자 한 개의 가격이 20원, 사려고 하는 과자의 개수가 10개, 현재 동수가 가진 돈이 320원이라 할 때 동수가 부모님께 받아야 하는 돈은 역시 0원이다.
과자 한 개의 가격, 사려고 하는 과자의 개수와 동수가 현재 가진 돈의 액수가 주어질 때 동수가 부모님께 받아야 하는 돈의 액수를 출력하는 프로그램을 작성하시오.
입력
첫 번째 줄에는 과자 한 개의 가격 K, 사려고 하는 과자의 개수 N, 현재 동수가 가진 돈 M이 각각 공백을 사이에 두고 주어진다. 단, K, N은 1,000 이하의 양의 정수이고, M은 10만 이하의 양의 정수이다. (1 ≤ K, N ≤ 1,000, 1 ≤ M ≤ 100,000이다.)
출력
첫 줄에 동수가 부모님께 받아야 하는 돈의 액수를 출력한다.
예제 입력 1
300 4 1000
예제 출력 1
200
예제 입력 2
250 2 140
예제 출력 2
360
예제 입력 3
20 6 120
예제 출력 3
0
예제 입력 4
20 10 320
예제 출력 4
0
풀이
부족한 돈을 단순하게 식으로 나타내보면
가격 * 갯수 - 보유한 돈이다.
여기서 주의할 점은 4번 입력인데 충분히 돈이 많을 경우는 더 필요한 돈은 0이다
따라서 max함수를 이용해서 0보다 작을경우 0으로 고정해준다.
#include <iostream>
using namespace std;
int main() {
int price, ea, money;
cin >> price >> ea >> money;
cout << max(price * ea - money, 0);
}