JavaScript 백준 온라인 알고리즘 공부
백준 5622 번 Node.js 문제풀이
const fs = require("fs");
const input = (
process.platform === "linux"
? fs.readFileSync("/dev/stdin").toString()
: `UNUCIC`
)
.trim()
.split("");
for (let i = 0; i < input.length; i++) {
let alphNumber = input[i].charCodeAt();
alphNumber >= 65 && alphNumber <= 67
? (input[i] = 2)
: alphNumber >= 68 && alphNumber <= 70
? (input[i] = 3)
: alphNumber >= 71 && alphNumber <= 73
? (input[i] = 4)
: alphNumber >= 74 && alphNumber <= 76
? (input[i] = 5)
: alphNumber >= 77 && alphNumber <= 79
? (input[i] = 6)
: alphNumber >= 80 && alphNumber <= 83
? (input[i] = 7)
: alphNumber >= 84 && alphNumber <= 86
? (input[i] = 8)
: alphNumber >= 87 && alphNumber <= 90
? (input[i] = 9)
: 0;
}
let overTime = 1;
let minimumTime = input.map((e) => e + overTime).reduce((a, b) => a + b);
console.log(minimumTime);
문제에서 해당 상수들은 주어졌으니, 굳이 chatCode를 사용하지 않고도
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = '';
rl.on('line', (line) => input = line)
.on('close', () => {
const A = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ'];
console.log(input.split('').reduce((sum, cur) => {
const i = A.findIndex((x) => x.includes(cur));
if(i > -1) sum += (i + 3);
return sum;
},0));
})
이렇게 해결하는 방식도 있겠네요