새소식

💻 Programming (프로그래밍)/C++ | 백준

[C++][백준] - 주사위 게임 (2476번)

  • -
https://www.acmicpc.net/problem/2476
 

2476번: 주사위 게임

첫째 줄에는 참여하는 사람 수 N이 주어지고 그 다음 줄부터 N개의 줄에 사람들이 주사위를 던진 3개의 눈이 빈칸을 사이에 두고 각각 주어진다. 

www.acmicpc.net

🔔 문제 : 

 

2<= N <= 1000 인 N명의 사림이서

 

1~6 숫자가 있는 정육면체 주사위를 3개를 던집니다.

 

같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 
같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 
모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다.  

 

이라는 조건이 있을 때, 가장 많은 상금을 받은 사람의 상금을 출력하면 됩니다.


🔔 Kick Point :

 

int 배열을 보기편하게 arr[7]로 두어

주사위 숫자 1 나올시 arr[1]이 1 증가

주사위 숫자 2 나올시 arr[1]이 1 증가

이런식으로 코드를 짰습니다.

 

그리고, 중복된 숫자 3, 2 가 있을시 결과값을 구하고 break문을 통해 탈출 할 수 있게 만들어 줍니다. 


🔔 Code :

#include <iostream>
using namespace std;

int main() 
{
	int n; cin >> n;
	int total = 0;
	for (int k = 0; k < n; k++) {
		int arr[7] = { 0, };
	
		// 1. 입력
		for (int j = 0; j < 3; j++) {
			int tmp;
			cin >> tmp;
			arr[tmp]++;
		}

		// 2. 숫자 판별
		for (int i = 6; i > 0; i--) {
			if (arr[i] == 3) {
				total = total < 10000 + 1000 * i ? 10000 + 1000 * i : total;
				break;
			}
			else if (arr[i] == 2) {
				total = total < 1000 + 100 * i ? 1000 + 100 * i : total;
				break;
			}
			else if (arr[i] == 1)
			{
				total = total < 100 * i ? 100 * i : total;
			}
		}

	}
	
	cout << total;
	
}

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.