[백준/파이썬] 2480번 주사위 세개 풀이

업데이트:



문제 정보


풀이

문제

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개 주사위의 나온 눈이 주어질 때, 상금을 계산하는 프로그램을 작성 하시오.

  • 자세한 문제 및 입출력 예제는 상단의 문제 출처(백준 홈페이지)를 참조해주세요

코드

a,b,c=map(int,input().split())
if a==b==c:
    print(10000+a*1000)
elif a==b or b==c:
    print(1000+b*100)
elif a==c:
    print(1000+a*100)
else:
    print(max(a,b,c)*100)

설명

쉬운 문제입니다

문제에서 구분해 준 3개의 조건을 프로그래밍 언어로 옮겨적기만 하면 됩니다.

이 중, elif문으로 쓴 두 조건에 대해서만 짧게 설명드리겠습니다.

이 두 조건은 위의 2번 조건을 구현한 것입니다. 2개의 눈이 같으면 해당 눈이 계산에 필요하게되므로, 어떤 눈이 같은 눈이 있는지 파악이 필요합니다.

a == b or b == c 인 경우 무조건 b는 같은 눈입니다. 이를 바로 사용하면 되고, 주사위 세개를 던졌을 때, b가 같은 눈이 아닌 경우 단 한가지인 a == c만 따로 한번 더 고려해주면 됩니다.

a == b or b == c or a == c라고 쓸 수도 있었겠지만, 이렇게 되면 어떤 눈이 같은 눈인지를 한번 더 고려해야 될 것입니다.



댓글남기기