[백준 BOJ] 20332번 Divvying Up (C++/cpp)

2025. 12. 18. 18:04PS (Program Solving)/BOJ (백준)

문제 설명

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

 

백준 BOJ 20332번 Divvying Up 문제 사진

 

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

백준의 20332번 문제는 사칙연산을 활용하여 쉽게 해결할 수 있는 문제이다.

해당 문제는, 주어지는 대회 상금을 모두 얻었을 때 3명의 팀원이 상금을 똑같이 나누어 가질 수 있는지를 판별하여 이를 출력하면 되는 문제이다.

영어로 작성된 문제 지문에 대한 해석본은 아래 링크에 있으니, 문제 해결할 시 함께 참고하면 좋을 것이다.

https://www.acmicpc.net/board/view/88801

 

대회 상금의 총합이 3으로 나누어 떨어진다면 남는 것 없이 몫의 값으로 3명의 팀원이 상금을 골고루 나누어가질 수 있기 때문에, 이에 대해서 판별하기만 하면 된다.

언어의 기초 문법만 잘 활용할 수 있다면, 어렵지 않게 해결할 수 있을 것으로 예상된다.

정말 더 설명할 내용이 없는 것 같지만 보다 자세한 내용을 아래에 기재해 놓으니, 혹여나 해당 문제를 해결하는 데에 어려움을 겪고 있다면, 아래의 설명과 코드를 참고해 보길 바란다.

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

 

코드의 실행 순서

1) 대회의 개수(n)를 입력받는다.

 

2) 상금의 총합을 저장할 변수 sum을 0으로 초기화하여 선언해 둔다.

 

3) n의 크기만큼, 반복문을 수행하여 아래의 연산을 취한다.

- 각 대회의 상금(num)을 순차적으로 입력받는다.

- num을 입력받는 대로, sum에 해당 값을 더해주도록 한다.

 

4) sum 값이 3으로 나누어 떨어지는지를 확인하도록 한다.

만약 3으로 나누었을 때 나머지가 없다면, 이는 나누어 떨어짐을 의미한다. 따라서 이 경우에는 "yes"를 출력한다.

다만, 3으로 나누었을 때 나머지가 있다면, 이는 나누어 떨어지지 않음을 의미한다. 따라서 이 경우에는 "no"를 출력한다.

 

5) 정답을 알맞게 출력하였다면, 실행을 종료한다.

반응형

 

성공한 코드

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

//백준 20332번 코드
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 < n; i++) {
		int num;
		cin >> num;
		sum += num;
	}

	if (sum % 3 == 0) { cout << "yes" << endl; }
	else { cout << "no" << endl; }
}

 

제출 결과

백준 BOJ 20332번 Divvying Up 문제 C++ 제출 결과

(2023.09.14 백준 20332번 문제 제출 결과)