[백준 BOJ] 10156번 과자 (C++/cpp)

2023. 3. 6. 12:17PS (Program Solving)/BOJ (백준)

문제 설명

https://www.acmicpc.net/problem/10156

 

10156번: 과자

첫 번째 줄에는 과자 한 개의 가격 K, 사려고 하는 과자의 개수 N, 현재 동수가 가진 돈 M이 각각 공백을 사이에 두고 주어진다. 단, K, N은 1,000 이하의 양의 정수이고, M은 10만 이하의 양의 정수이

www.acmicpc.net

백준 BOJ 10156번 과자 문제 사진1
백준 BOJ 10156번 과자 문제 사진2

 

접근 방법 - 기초적인 사칙연산 문제

백준의 10156번 문제는 기초적인 사칙연산을 활용하여 해결해야 하는 수학적인 문제이다.

해당 문제는, 동수가 사고자 하는 과자의 가격 및 개수와 가지고 있는 돈을 입력받을 때 더 필요한 돈의 액수를 구하여 출력해야 하는 문제이다.

이는, 과자의 총 가격과 보유 중인 가격을 비교하고 연산하여 결과를 구하면 되는 간단한 문제이다.

그렇기 때문에 ps를 어느 정도 해보았다면, 이 문제는 비교적 쉽게 해결할 수 있었을 것이다.

혹여나 해당 문제를 해결하는 데에 어려움을 겪고 있다면, 아래의 설명과 코드를 참고해 보길 바란다.

필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.

 

코드의 실행 순서

1) 과자의 가격, 개수, 보유 중인 돈(p, n, money)을 순차적으로 입력받는다.

 

2) result라는 변수를 선언한 뒤, 과자의 총액수에서 보유 중인 돈을 뺀 값을 저장한다.

(부족한 돈의 액수만큼 더 필요하기 때문에, 위와 같은 값을 저장하도록 하였다.)

 

3) result의 값에 따라, 아래처럼 출력을 수행한다.

만일 result의 값이 0보다 작거나 같다면, 이는 더 필요한 돈이 없다는 것을 의미한다. 따라서, 이 경우엔 0을 출력한다.

다만 양수의 값을 가진다면, 해당 액수만큼 돈이 더 필요하다는 것을 의미하기 때문에 해당 값을 그대로 출력한다.

 

4) 출력을 완료하였다면, 실행을 종료한다.

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#define endl '\n'
using namespace std;

//백준 10156번 코드
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);	cout.tie(NULL);

	int p, n, money;
	cin >> p >> n >> money;

	int result = p * n - money;
	if (result <= 0) { cout << 0 << endl; }
	else {
		cout << result << endl;
	}
}

 

제출 결과

백준 BOJ 10156번 과자 문제 C++ 제출 결과

(2022.12.29 백준 10156번 문제 제출 결과)

반응형