옹실이의 개발이야기

알고리즘

[백준] 알고리즘 #2480 : 주사위 세개 (Python)

옹실 2023. 4. 30. 13:52

문제

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

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

예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로 받게 된다.

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

 

입력

째 줄에 3개의 눈이 빈칸을 사이에 두고 각각 주어진다. 

 

출력

첫째 줄에 게임의 상금을 출력 한다.

 

풀이

1. 값 3개를 숫자(int)로 입력받아 각각 a, b, c 변수에 담는다.
2. 같은 눈이 3개가 나오면 10,000+값×1,000 을 계산한다.
    (a == b 이고 b == c : a, c 모두 b와 같으므로 a = b = c 조건 성립)
3. 같은 눈이 아닐 때 ① a를 기준으로 값 2개가 같을 때(1000 + a * 100)
                                 ② b를 기준으로 값 2개가 같을 때(1000 + b * 100)
                                 ③ 이 외의 경우는 a, b, c 의 값이 모두 다를 때 이므로
                                      a, b, c의 값을 비교해서 가장 큰 값에 100을 곱해주면 된다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
a, b, c = map(int, input().split())
 
if a == b and b == c :
    print(10000+a*1000)
else :
    if a == b or a == c :
        print(1000+a*100)
    elif b == c :
        print(1000+b*100)
    else :
        if a > b and a > c :
            print(a*100)
        elif b > a and b > c :
            print(b*100)
        elif c > a and c > b :
            print(c*100)
cs