본문 바로가기

코딩/백준 BOJ

[백준/C언어] 2480번 - 주사위 세 개

백준 웹사이트 "2480번 - 주사위 세 개" 문제풀이입니다.

언어는 C언어입니다. (제출 언어: C99)

 


문제

 

2480번: 주사위 세개

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

www.acmicpc.net


소스 코드

#include <stdio.h>

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

    if(A==B && B==C)
        printf("%d\n", 10000+A*1000);
    else if(A==B)   //else if -> B==C는 아님
        printf("%d\n", 1000+A*100);
    else if(B==C)   //else if -> A==B는 아님
        printf("%d\n", 1000+B*100);
    else if(C==A)   //else if -> A==B, B==C는 아님
        printf("%d\n", 1000+C*100);
    else if(A>B && A>C) //A가 가장 큼
        printf("%d\n", A*100);
    else if(B>C)    //A가 가장 크지 않고, B>C -> B가 가장 큼
        printf("%d\n", B*100);
    else
        printf("%d\n", C*100);
}

문제 풀이

  가장 먼저 확인하는 것은 A, B, C가 모두 같은지입니다. A가 B와 같고, B가 C와 같으면 세 숫자가 동일하므로, 이 케이스를 처음으로 확인해봅니다.

  Line 9, 11, 13은 두 눈이 같은 경우입니다. 이때, 이 세 가지 경우에 대해서는 A, B, C가 모두 같은 경우는 없다는 것을 잊지 말아야 합니다. 즉, 세 숫자가 모두 같은 경우는 Line 7에서 걸러지므로 Line 9처럼 조건문을 'A==B'로 작성해도 괜찮습니다. Line 11, 13도 마차가지로 'B==C'와 'C==A'만 적습니다.

  Line 15, 17, 19는 각각 A가 가장 큰 경우, B가 가장 큰 경우, C가 가장 큰 경우입니다. 나중에 나오는 else if문과 else문은 앞서 나온 조건문들을 부정한다는 것만 기억해주세요!

반응형