본문 바로가기
코딩/백준

[C언어] 백준 BOJ 2480 주사위 세개

by 김두루미 2022. 7. 5.
반응형

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

 

2480번: 주사위 세개

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.  같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.  같은 눈이 2개

www.acmicpc.net

문제 설명

백준의 문제 - 단계별로 풀어보기의 [조건문] 의 2480 주사위 세개 문제입니다.

 

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

 

3개의 주사위를 던져서 위와 같은 조건에 따라 나온 값을 출력하는 문제입니다.


경우의 수는 모든 눈이 같은 경우

3 3 3

같은 눈이 2개만 나오는 경우

1 3 3
3 1 3
3 3 1

모두 다른 눈이 나오는 경우

3 2 1
3 1 2
2 3 1
1 3 2
1 2 3
2 1 3

위와 같은 경우의 수를 조건문으로 구현하면 됩니다.

 

코드 (C언어)
#include<stdio.h>

int main(void)
{
	int A, B, C, result;
	
	scanf("%d%d%d", &A, &B, &C);

	if(A == B && B == C)				 
	{
		result = 10000 + (A * 1000);
	}
	else if(A == B)			//else if에서는 A==B가 맞으면 A==C, B==C는 동시에 맞을  수 없다. 
	{						//그러한 경우면, 위의 if문의 조건에서 만족을 했다. 
		result = 1000 + (A * 100);
	}
	else if(A == C)
	{
		result = 1000 + (A * 100);
	}
	else if(B == C)
	{
		result = 1000 + (B * 100);
	}
	else if(A > B && A > C)	//모두 다른 경우는 가장 큰수를 찾는 것이므로, A가 가장 큰지만 확인한다. 
	{
		result = A * 100;
	}
	else if(B > A && B > C)
	{
		result = B * 100;
	}
	else if(C > A && C > B)
	{
		result = C * 100;
	}
	
	printf("%d", result);
	
	return 0;
}

 

반응형