주사위 세개(2480번)

PearLine_Zero·2024년 3월 11일

하루에 1커밋 CodingTest

목록 보기
20/110
post-thumbnail
  • 티어 : Bronze 5
  • 정답여부 : 정답
  • 알고리즘 유형 : 구현, 수학, 사칙연산, 많은 조건 분기
  • 시간 제한 : 2초

💡문제

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 3 6

💡예제 출력 1

1300

💡예제 입력 2

2 2 2

💡예제 출력 2

12000

💡예제 입력 3

6 2 5

💡예제 출력 3

600

💡문제요약

입력과 출력을 알아야하는 기본적인 문제

💡알고리즘 설계

  1. A, B, C 같으면 10,000원+(같은 눈)×1,000원
  2. A, B, C 중 숫자 2개만 같다면 1,000원+(같은 눈)×100원
  3. A, B, C 중 다 다르다면 MAX 함수를 써 (그 중 가장 큰 눈)×100원

💡작성코드

  • python
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 == c:
    print(1000 + b * 100)
else:
    print(max(a, b, c) * 100)

💡틀린 이유 or 수정할 부분

eiif 조건문을 한번에 다 쓰는 방법은 없을까 했는데 있긴 있다만 가독성이 너무 안 좋아서 무슨 말인지 모르겠음.

그래서 그냥 조건문을 2개 만드는게 더 효율적인거 같음.

💡틀린 부분 수정 or 다른풀이

없음.

💡느낀점 or 기억할 정보

여러가지 경우의 수를 잘 생각해보자.

profile
https://baesaa0304.tistory.com 블로그 이사합니다~

0개의 댓글