[백준 BOJ] 2490번 윷놀이 (C++/cpp)

2023. 2. 6. 11:19PS (Program Solving)/BOJ (백준)

문제 설명

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

 

2490번: 윷놀이

우리나라 고유의 윷놀이는 네 개의 윷짝을 던져서 배(0)와 등(1)이 나오는 숫자를 세어 도, 개, 걸, 윷, 모를 결정한다. 네 개 윷짝을 던져서 나온 각 윷짝의 배 혹은 등 정보가 주어질 때 도(배 한

www.acmicpc.net

백준 BOJ 2490번 윷놀이 문제 사진

 

접근 방법 - 기본적인 수학적 구현 문제

백준의 2490번 문제는 기본적인 카운팅을 이용하여 해결해야 하는 수학 문제이다.

해당 문제는, 입력받은 윷짝의 정보를 통해서 도개걸윷모를 판별하여 출력해야 하는 문제이다.

비교적 간단한 원리를 이용한 문제로, 각 케이스에서 0 또는 1의 총개수만을 이용하여 정답을 출력하면 된다.

(필자와 같은 경우엔, 1의 총개수를 통해 정답을 출력하게끔 하였다.)

따라서 이 문제는 조건문이나 반복문의 가장 기본적인 부분만 알고 있어도 쉽게 해결할 수 있을 것으로 예상된다.

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

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

 

코드의 실행 순서

1) 반복문을 실행해, 아래와 같은 연산을 3번 실행하도록 한다. (해당 문제에선 테스트 케이스가 3개로 고정이다.)

- 각 윷짝 정보에서, 등(1)의 총개수를 저장할 변수 sum을 0으로 초기화하여 선언한다.

- 윷짝의 정보를 하나씩 입력받는다. 이때, 1을 입력받았다면 그 즉시 sum에 1을 더하도록 한다.

- sum의 값에 따라, 아래처럼 정답을 출력하도록 한다.

sum이 0이라면, 이는 윷짝들 중 등이 없다는 것을 뜻한다. 따라서 이 경우엔, 윷을 의미하는 'D'를 출력한다.
sum이 1이라면, 이는 윷짝들 중 등이 하나라는 것을 뜻한다. 따라서 이 경우엔, 걸을 의미하는 'C'를 출력한다.
sum이 2이라면, 이는 윷짝들 중 등이 둘이라는 것을 뜻한다. 따라서 이 경우엔, 개를 의미하는 'B'를 출력한다.
sum이 3이라면, 이는 윷짝들 중 등이 셋이라는 것을 뜻한다. 따라서 이 경우엔, 도를 의미하는 'A'를 출력한다.
sum이 4이라면, 이는 모든 윷짝들이 등이라는 것을 뜻한다. 따라서 이 경우엔, 모를 의미하는 'E'를 출력한다.
(필자는 이를 switch문으로 구현하였는데, 이처럼 작성할 시 반드시 모든 case문에 break문을 각각 작성하도록 한다.)

 

2) 모든 테스트 케이스를 실행하였다면, 실행 종료한다.

반응형

 

성공한 코드

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

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

	for (int i = 0; i < 3; i++) {
		int sum = 0;
		for (int j = 0; j < 4; j++) {
			int a;
			cin >> a;
			if (a == 1) { sum++; }
		}

		switch (sum) {
		case 0:	cout << "D" << endl;	break;
		case 1:	cout << "C" << endl;	break;
		case 2:	cout << "B" << endl;	break;
		case 3:	cout << "A" << endl;	break;
		case 4:	cout << "E" << endl;	break;
		}
	}
}

 

제출 결과

백준 BOJ 2490번 윷놀이 문제 C++ 제출 결과

(2022.09.26 백준 2490번 문제 제출 결과)

반응형