[백준 BOJ] 25628번 햄버거 만들기 (C++/cpp)

2023. 1. 20. 14:30PS (Program Solving)/BOJ (백준)

문제 설명

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

 

25628번: 햄버거 만들기

햄버거 가게에서 일하는 종현이는 햄버거를 만드는 일을 하고 있다. 가게에는 햄버거 빵이 $A$개, 햄버거 패티가 $B$개 있는데, 이 빵과 패티를 가지고 최대한 햄버거를 많이 만드려고 한다. 햄버

www.acmicpc.net

백준 BOJ 25628번 햄버거 만들기 문제 사진1
백준 BOJ 25628번 햄버거 만들기 문제 사진2

 

접근 방법 - 사칙연산의 기본 문제

백준의 25628번 문제는 사칙연산에 있어 기본적인 원리를 다루고 있는 문제이다.

해당 문제는, 입력으로 주어진 빵과 패티의 개수에 대해 최대로 만들 수 있는 햄버거의 개수를 출력해야 하는 문제이다.

이때, 햄버거 하나를 만들 때에 2개의 빵과 1개의 패티가 사용된다고 한다.

필자는, 빵과 패티의 개수가 충족되는 대로 햄버거를 하나씩 만드는 방향으로 사칙연산을 수행하였다.

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

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

 

코드의 실행 순서

1) 빵과 패티의 개수(b, p)를 각각 입력받는다.

 

2) 만들 수 있는 햄버거의 개수를 저장할 변수 ham을 0으로 초기화하여 선언한다.

 

3) 반복문을 실행하여, 아래의 연산을 수행한다.

(b가 2 이상이고, p가 1 이상일 때에만 해당 반복문을 수행하도록 한다.)

- 해당 반복문에 입장하였다는 것은 즉, 현재 남아있는 재료로 햄버거를 만들 수 있다는 것을 의미한다.

따라서, b에 2를 빼고 p에 1을 뺀 다음 ham에 1을 더하여, 햄버거를 하나 만들도록 한다.

 

4) 위 연산이 모두 완료되었다면, 최종적으로 저장된 ham의 값을 출력한 뒤 실행 종료한다.

반응형

 

성공한 코드

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

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

	int b, p;
	cin >> b >> p;

	int ham = 0;
	while (b >= 2 & p > 0) {
		b -= 2;
		p--;
		ham++;
	}
	cout << ham << endl;
}

 

제출 결과

백준 BOJ 25628번 햄버거 만들기 문제 C++ 제출 결과

(2022.10.16 백준 25628번 문제 제출 결과)

반응형