주사위 세개

문제 링크

주사위 세개

분석

세 개의 주사위를 던져 나온 눈의 값을 입력받고, 눈의 중복 여부에 따라 상금을 계산하는 문제입니다.

각 주사위의 값은 1부터 6사이의 정수로 총 3개의 값이 주어집니다.

세 개의 주사위 값의 중복 여부에 따른 세 가지 경우가 존재합니다.

  1. 세 수가 모두 같은 경우
    • 3 3 3
  2. 두 수만 같은 경우
    • 3 3 6
  3. 세 수가 모두 다른 경우
    • 2 5 6

경우에 따라 결과값을 의미하는 상금이 달라집니다.

  1. 세 수가 모두 같은 경우 $10000 + (같은 수 \times 1000)$
  2. 두 수만 같은 경우 $1000 + (같은 수 \times 100)$
  3. 모두 다른 경우 $가장 큰 수 \times 100$

세 수의 동일 여부를 조건문으로 판별해 해당 규칙을 적용한 상금을 계산하면 간단하게 풀어낼 수 있습니다.

풀이

#include <iostream>

using namespace std;

int main()
{
	int a, b, c, d = 0;

	cin >> a >> b >> c;

    // 같은 눈이 3개인 경우
	if (a == b && b == c)
	{
		d = 10000 + a * 1000;
	}
    // 같은 눈이 2개인 경우
	else if (a == b || b == c)
	{
		d = 1000 + b * 100;
	}
    // 같은 눈이 2개인 경우
	else if (a == c)
	{
		d = 1000 + a * 100;
	}
    // 모두 다른 눈이 나온 경우
	else
	{
		d = max(max(a, b), c) * 100;
	}

	cout << d;

}

성능 요약

시간 복잡도는 상수 시간에 끝나기 때문에 $O(1)$입니다.

공간 복잡도는 고정된 크기의 상수 공간을 사용하기 때문에 $O(1)$입니다.

메모리: 2020 KB

시간: 0 ms

Date:     Updated:

카테고리:

태그:

Baekjoon 카테고리 내 다른 글 보러가기

댓글남기기