[백준 BOJ] 27110번 특식 배부 (C++/cpp)

2024. 3. 2. 15:18PS (Program Solving)/BOJ (백준)

문제 설명

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

 

27110번: 특식 배부

설날을 맞아 부대원들을 위해 특식으로 치킨을 주문했다. 후라이드 치킨, 간장치킨, 양념치킨을 각각 $N$마리씩 주문했고, $1$인당 치킨을 한 마리씩 배부하고자 한다. 최대한 많은 부대원에게 본

www.acmicpc.net

백준 BOJ 27110번 특식 배부 문제 사진1
백준 BOJ 27110번 특식 배부 문제 사진2

 

접근 방법 - 기초적인 사칙연산을 활용한 수학 문제

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

해당 문제는, 동일한 마릿수로 각 종류의 치킨들이 준비될 때 가장 선호하는 치킨을 배부받을 수 있는 병사의 총합을 구해서 출력해야 하는 문제이다.

해당 문제의 경우에는, 문제의 맥락만 잘 파악하였다면 비교적 쉽게 해결할 수 있는 문제로 예상된다.

필자의 경우엔, 치킨이 부족한 경우 / 치킨이 충분한 경우 2가지로 나누어서 연산을 수행하게끔 코드를 구성하였다.

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

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

 

코드의 실행 순서

1) 각 종류의 치킨을 가장 선호하는 병사의 수를 저장할 배열(chick)을 전역 변수로 미리 선언해 둔다.

 

2) 동일하게 주문된 치킨의 마릿수(n)를 입력받는다.

 

3) 본인이 장 좋아하는 치킨을 배부받을 수 있는 병사의 총합 저장할 변수 sum을, 0으로 초기화하여 선언한다.

 

4) 치킨의 가짓수인 3회만큼, 반복문을 실행하여 아래의 연산을 수행한다.

- 해당되는 종류의 치킨을 가장 좋아하는 병사의 수를 입력받는다.

- 2가지의 경우로 나누어 덧셈 연산을 수행한다.

  • 만약 chick[i] 값이 n보다 크거나 같다면, 이는 치킨의 개수가 딱 맞거나 부족한 경우이다. 따라서 이 경우엔, sum에 n을 더하도록 한다.
  • n이 chick[i]보다 크다면, 이는 치킨의 개수가 충분한 경우이다. 따라서 이 경우엔, sum에 chick[i] 값을 더하도록 한다.

 

5) 위의 연산을 모두 수행하였다면, 최종적으로 저장된 sum을 출력한 뒤 실행 종료한다.

반응형

 

성공한 코드

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

//백준 27110번 코드
int chick[3];
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);	cout.tie(NULL);

	int n;
	cin >> n;

	int sum = 0;
	for (int i = 0; i < 3; i++) {
		cin >> chick[i];
		if (chick[i] >= n) {
			sum += n;
		}
		else {
			sum += chick[i];
		}
	}

	cout << sum << endl;
}

 

제출 결과

백준 BOJ 27110번 특식 배부 문제 C++ 제출 결과

(2023.01.15 백준 27110번 문제 제출 결과)

반응형