문제
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 |