주사위 상금 게임

문제


1에서부터 6까지의 눈을 가진 4개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.

  • 같은 눈이 4개가 나오면 50,000원 + (같은 눈) × 5,000원의 상금을 받게 된다.
  • 같은 눈이 3개가 나오면 10,000원 + (같은 눈) × 1,000원의 상금을 받게 된다.
  • 같은 눈이 2개씩 두 쌍이 나오는 경우에는 2,000원 + (두 쌍 중 더 큰 눈) × 500원의 상금을 받게 된다.
  • 같은 눈이 2개만 나오는 경우에는 1,000원 + (같은 눈) × 100원의 상금을 받게 된다.
  • 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈) × 100원의 상금을 받게 된다.

4개 주사위의 나온 눈이 주어질 때, 상금을 계산하는 프로그램을 작성 하시오.

입력


각 주사위의 눈을 공백으로 구분하여 입력하세요. (예: "3 3 4 4")

주사위 눈의 범위는 1에서 6까지입니다.

풀이


function diceGame(dices) {
    const [dice1, dice2, dice3, dice4] = dices.split(' ').sort().map(Number);
    if (dice1 === dice4) return 50000 + dice1 * 5000;
    else if (dice1 === dice3 || dice2 === dice4) return 10000 + dice1 * 1000;
    else if (dice1 === dice2 && dice3 === dice4)
        return 2000 + (dice1 === dice2 ? dice1 : dice3) * 500;
    else if (dice1 === dice2 || dice2 === dice3 || dice3 === dice4)
        return 1000 + (dice3 === dice4 ? dice3 : dice2) * 100;
    else return dice4 * 100;
}

 

주사위 결과를 정렬하여 정수형으로 변환하여 4개의 변수에 저장합니다.

정렬을 하였기 때문에 연속의 숫자를 찾는 조건문에서 더 편한게 할 수 있습니다.

 

'코딩문제' 카테고리의 다른 글

출석하지 않은 강아지 찾기  (0) 2024.03.24
지우개 교환  (0) 2024.03.22
필통과 지우개  (0) 2024.03.22
통닭 시간 프로그램  (0) 2024.03.21
윤년 판별  (0) 2024.03.20