BOJ[2480] - 주사위 세개 by JavaScript
주사위 세개
문제
언어
- JavaScript
순서도
- 같은 눈이 3 개가 나오면
10000 + (같은 눈) * 1000을 출력합니다. - 같은 눈이 2 개만 나오는 경우에는
1000 + (같은 눈) * 100을 출력합니다. - 모두 다른 눈이 나오는 경우에는
(그 중 가장 큰 눈) * 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));