[백준5622_자바스크립트(javascript)] - 다이얼

경이·2024년 9월 26일

𝑩𝑶𝑱 (𝒋𝒔)

목록 보기
184/325

🔴 문제

다이얼


🟡 Sol

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을 더해줬다.


🔵 Ref

profile
록타르오가르

0개의 댓글