알고리즘/백준 - 파이썬

백준) 2480번 주사위 문제 (파이썬)

AI Sonny 2022. 5. 24. 09:09
728x90

문제) 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):
  X = 10000+a*1000
elif (a==b!=c):
  X = 1000 + a * 100
elif b==c!=a:
  X = 1000 + b * 100
elif a==c!=b:
  X = 1000 + a * 100
elif a!=b!=c:
  if (a > b and a > c):
   X = a * 100
  elif (b > a and b > c):
   X = b * 100
  elif (c > b and c > a):
   X = c * 100
print(X)

이번 문제는 조건이 명확히 주어져서 풀기 쉬웠다.

 

다음 조건을  코딩하면

 

1. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.

 

-> a==b==c가 같을 때 10000+a*1000을 사용하였다. 변수는 3개가 다 같기 때문에 3개 중 아무거나 상관이 없다.

 

2. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 

 

-> a==b!=c, b==c!=a, c==a!=b일 때로 나누어 각 조건에 변수를 맞게 선언하였다.

 

3. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다.

 

-> a!=b!=c일 때를 이용한 후 if문을 한번 더 작성하고 비교하였다. 왜냐하면 '가장 큰 눈에'라는 조건이 있기 때문이다.

 

이번 문제는 생각보다 쉬운줄 알았는데 if 문을 한번 더 쓰는 생각을 못해서 시간이 걸렸었다.

 

이해가 안되시거나 틀린 정보는 댓글로 알려주시면 감사하겠습니다!

728x90