
const fs = require('fs');
const path = process.platform === 'linux' ? '/dev/stdin' : 'input.txt';
const inputs = fs.readFileSync(path).toString().trim();
let ans = 0;
for (const input of inputs) {
if ('PQRS'.includes(input)) {
ans += 8;
} else if ('TUV'.includes(input)) {
ans += 9;
} else if ('WYXZ'.includes(input)) {
ans += 10;
} else {
const alphaNum = Math.floor((input.charCodeAt() - 65) / 3) + 3;
ans += alphaNum;
}
}
console.log(ans);
⏰ 소요한 시간 : -
난이도에 비해서 까다로운 유형문제
각 알파벳을 숫자에 대응하기만 하면되는데 map 자료구조를 만들어 1대1대응해도 되지만 알파벳 26개를 다루기엔 좀 많은듯 하다.
그렇다고 3개씩 나누어서 계산할 수 있느냐 라고 판단하기에는 7번 다이얼, 9번 다이얼에 알파벳이 4개씩 있다.
그래서 고민 끝에 입력으로 주어진 요소들을 순회하면서 7, 8, 9 다이얼일 경우에만 하드코딩으로 값을 더해줬고, 나머지 경우는 문자를 아스키 코드로 바꾼 뒤 3으로 나눈 몫을 내림한 뒤, 3을 더해줬다.