본문 바로가기
배움 기록/코테 연습

[알고리즘] 백준 2480번 : JavaScript(Node.js) 풀기

by dygreen 2023. 5. 29.

📌 문제

 

📌 풀이

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

댓글