주사위 세개

문제

언어

  • JavaScript

순서도

  1. 같은 눈이 3 개가 나오면 10000 + (같은 눈) * 1000 을 출력합니다.
  2. 같은 눈이 2 개만 나오는 경우에는 1000 + (같은 눈) * 100 을 출력합니다.
  3. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈) * 100 을 출력합니다.

문제 풀이 step 1

  • 순서도 처럼 같은 눈의 개수에 맞게 숫자를 출력하는 문제입니다.
  • 같은 눈이 두 개인지 파악하는 조건은 약간 복잡하기 때문에 조건 간소화를 위해서
  • 같은 눈이 세 개인 경우와 모두 다른 눈이 나온 경우를 먼저 처리합니다.
  • 그리고 같은 눈이 두 개인 경우는 남은 조건이므로 판별할 필요는 없습니다.
  • 각 경우에 맞게 계산 값을 출력하면 정답이 됩니다.
  • 추가 설명은 주석으로 작성하겠습니다.

소스 코드

const input = require("fs")
	.readFileSync("/dev/stdin")
	.toString()
	.trim()
	.split("\n");

// 같은 눈이 두 개일 경우 같은 눈이 무엇인지 출력하는 함수
const getSame = (a, b, c) => {
	if (a === b || a === c) return a;
	return b;
};

const solution = (input) => {
	const [a, b, c] = input[0].split(" ").map(Number);

	// 같은 눈이 3 개인 경우
	if (a === b && b === c) return 10000 + a * 1000;

	// 모두 다른 눈이 나온 경우
	if (a !== b && b !== c && c !== a) return Math.max(a, b, c) * 100;

	// 같은 눈이 2 개만 나온 경우
	return 1000 + getSame(a, b, c) * 100;
};

console.log(solution(input));