📌 문제
📌 풀이
const input = require('fs').readFileSync('/dev/stdin').toString().split(' ').map(Number).sort();
const [a,b,c] = input;
if (a === b && b === c) { // 세 숫자가 같을 경우
console.log(10000 + a * 1000);
} else if (a === b || b === c) { // 정렬을 했기 때문에 두 가지 경우의 수가 됨
if (a === b) {
console.log(1000 + a * 100);
} else if (b === c) {
console.log(1000 + b * 100);
}
} else if (a !== b && b !== c) { // 세 숫자가 각각 다를 경우
console.log(c * 100); // 오름차순 정렬이므로 c가 제일 큰 숫자
}
- sort() : 이 문제에서 가장 중요한 핵심은 sort로 정렬하는 것이었다. (정렬하면 생각해야 할 경우의 수가 줄어듦)
여기서는 주사위 눈이 기준이기 때문에 매개변수를 주지 않았지만,
만약 매개변수가 제공되지 않으면 요소를 문자열로 변환하고 첫 번째 문자열을 기준으로 비교하여 정렬된다.
따라서 매개변수가 없을 때, [1, 30, 4, 21, 100000]는 [1, 100000, 21, 30, 4] 이렇게 정렬된다.
정확하게 오름차순 내림차순으로 정렬하고 싶다면,
오름차순 : Array.sort((x,y) => x - y)
내림차순: Array.sort((x,y) => y -x)
이런식으로 작성하면 된다.
728x90
'배움 기록 > 코테 연습' 카테고리의 다른 글
[알고리즘] 백준 25314번 : JavaScript(Node.js) 풀기 (0) | 2023.06.11 |
---|---|
[알고리즘] 백준 10950번 : JavaScript(Node.js) 풀기 (0) | 2023.06.04 |
[알고리즘] 백준 2884번 : JavaScript(Node.js) 풀기 (1) | 2023.05.29 |
[알고리즘] 백준 9498번 : JavaScript(Node.js) 풀기 (0) | 2023.05.21 |
[알고리즘] 백준 11382번 : JavaScript(Node.js) 풀기 (1) | 2023.05.14 |
댓글