[Python] 백준 2480번
2480번 주사위 세개
1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 3개 주사위의 나온 눈이 주어질 때, 상금을 계산하는 프로그램을 작성 하시오.
Input) 3 3 5
Output) 1300
1
2
3
4
5
6
7
a,b,c=map(int, input().split())
if a == b == c:
print(10000+a*1000)
elif a == b or a == c or b == c:
print(1000+a*100)
else:
print(max(a,b,c)*100)
위와 같이 작성하니 1 2 2 를 입력했을 때 1200원이 아닌 1100원이 출력되었다.
문제
같은 눈이 2개만 나올 경우 같은 눈*100원을 해야하는데, a에 대한 같은눈 조건만 생각하고 b와 c의 같은눈 조건을 생략해버렸다.
문제해결
b와 c의 같은 눈 조건문 elif를 추가로 작성하였다.
1
2
3
4
5
6
7
8
9
10
11
a,b,c=map(int, input().split())
if a == b == c:
print(10000+a*1000)
elif a == b or a == c:
print(1000+a*100)
elif b == a or b == c:
print(1000+b*100)
elif c == a or c == b:
print(1000+c*100)
else:
print(max(a,b,c)*100)