본문 바로가기
Problem Solving/boj.kr (JS)

[BOJ / 자바스크립트] 5622 : 다이얼

by hoiiiii 2022. 2. 26.

문제 : https://www.acmicpc.net/problem/5622

 

5622번: 다이얼

첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다.

www.acmicpc.net

Sol ) : 구현 문제, 요구조건에 맞춰서 출력

  1. map 자료구조 (객체 등 해쉬 형태를 이용하기만 하면 됨)를 활용하여 각 알파벳과 소요 시간을 저장
    • A~O 까지는 문자 세 개씩 묶여있으니 (i=0 ; i <15), PQRS ( i=15 ; i <19 ), TUV ( i = 20 ; i <22 ), WXYZ ( i=22 ; i <26 )으로 나눠서 저장하기
  2. 입력받은 문자열을 순회하면서 1에서 지정한 키로 넣어서 값을 누적

소스코드 )

let dial = new Map();
for (let i = 0 ; i<15 ; i++){
  dial.set(String.fromCharCode("A".charCodeAt(0)+i),parseInt(i/3)+3);
}
for (let i = 15 ; i <19 ; i++){
  dial.set(String.fromCharCode("A".charCodeAt(0)+i),8);
}
for (let i = 19 ; i<22 ; i++){
  dial.set(String.fromCharCode("A".charCodeAt(0)+i),9);
}
for (let i = 22 ; i<26 ; i++){
  dial.set(String.fromCharCode("A".charCodeAt(0)+i),10);
}

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n')[0];
let result = 0;
for (let i = 0 ; i<input.length ; i++){
  result += dial.get(input[i]);
}
console.log(result);

댓글