본문 바로가기
백준 알고리즘 단계별 풀이 (문제 수)/조건문 (7)

[C++] 주사위 세개 : 2480번

by 17번 일개미 2022. 7. 7.
728x90

문제

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 

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

3개 주사위의 나온 눈이 주어질 때, 상금을 계산하는 프로그램을 작성 하시오.


예제 입력

3 3 6

예제 출력

1300

풀이

#include <iostream>
using namespace std;

int main() {
	int a, b, c; // 주사위 숫자
	cin >> a >> b >> c;
	int money = 0; // 상금
	if (a == b && b == c) { // 모두 같은 눈 일 때
		money = 10000 + a * 1000;
	}
	else if (a == b || a == c) { // a 가 두 개일때
		money = 1000 + a * 100;
	}
	else if (b == c || b == a) { b 가 두 개일때
		money = 1000 + b * 100;
	}
	else if (c == a || c == b) { c 가 두 개일때
		money = 1000 + c * 100;
	}
	else if (a != b && b != c && a != c) { // 전부 다를 때
		int temp;
		if (a > b) { // 가장 큰 눈을 찾기 위한 과정
			if (a > c) {
				temp = a;
			}
			else temp = c;
		}
		else if (b > c) {
			if (b > a) {
				temp = b;
			}
			else temp = a;
		}
		else if (c > a) {
			if (c > b) {
				temp = c;
			}
			else temp = b;
		}

		money = temp * 100; // 상금에는 가장 큰 눈 * 100
	}
	else return 0;
	cout << money;
}

조건문을 사용하여 모두 같은 눈, 2개가 같은 눈인 상황을 걸러내고,

모두 눈이 다를 경우에는 a, b, c 를 크기 비교하여 가장 큰 눈을 구하여 상금을 계산하면 된다.

728x90