본문 바로가기
Programming/Python

[BAEKJOON] 백준 Python 2단계 조건문 2480번 / 주사위 세개

by EunjiBest 2022. 4. 7.

[BAEKJOON] 백준 Python 2단계 조건문 2480번 / 주사위 세개

 

 

 

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

입력 : 첫째 줄에 3개의 눈이 빈칸을 사이에 두고 각각 주어진다. 
출력 : 첫째 줄에 게임의 상금을 출력 한다.

 

2단계 조건문의 마지막 문제이다! 그래서 그런지 조금? 난이도가 있어보이는 것은 기분탓일까?

주사위 문제도 참.. 내가 확률과 통계하면서 별로 안좋아했던 소재(?)이다.ㅎㅎ 하지만 확률 문제는 아니니! 풀어보도록하자

 

1. 3개의 int 숫자 a,b,c 가 input()

2. 만약 a,b,c가 모두 같다면 -> 10000+ a x 1000

3. 만약 a와 b가 같고, b와 c가 다르면. (즉, c만 다른숫자) -> 1000+ a x 100

4. 만약 a와 c가 같고, b와 c가 다르면. (즉, b만 다른숫자) -> 1000+ a x 100

5. 만약 b와 c가 같고, a와 b가 다르면. (즉, a만 다른 숫자) -> 1000+ b x 100

6. 만약 a,b,c가 모두 다르다면 -> 100 x a,b,c 중 최댓값.

 

이라고 정리를 해보았다.

조금 조잡해 보이지만, 일단 코딩을 하는데 필요한 계산의 정리는 다 해둔 것같다.

 

그럼 코드를 입력해보겠다.

 

a,b,c = map(int, input().split())

x = [a,b,c]

if a == b == c:
  print(10000 + a * 1000)
elif a == b and b != c:
  print(1000+a*100)
elif a == c and b != c:
  print(1000+a*100)
elif b == c and a != b:
  print(1000+b*100)
else: #모두 다른눈
  print(max(x) * 100)

 

바로 무난하게 정답처리가 되었다

좀 더 머리를 쓰면 더 깔끔한 코드가 되었을 수 있을 것 같아서 살짝 아쉽다.

 

다른 포스팅들은 어떻게 해결했는지 봐야겠다.

 

모두 다른 눈을 가졌을 때에는 최댓값을 구해야 했기 때문에

x에 a,b,c를 리스트로 만들어서 max(x)를 사용해 print했다.

 

 

이렇게 2단계 문제까지 모두 끝이고

내일부터는 3단계, 반복문 문제를 풀어보도록 하겠다!

 

 

 

 

 

 

 

 

반응형

댓글