유물/└ 백준

<백준> 5622번: 다이얼

디벅잉 2022. 2. 5. 22:21
728x90

 

🤖

 

문제

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

 

5622번: 다이얼

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

www.acmicpc.net

 

풀이

const fs = require("fs");
const WORD = fs.readFileSync("/dev/stdin").toString().trim();

function charToNum(char) {
  switch (char) {
    case "A":
    case "B":
    case "C":
      return 2;
    case "D":
    case "E":
    case "F":
      return 3;
    case "G":
    case "H":
    case "I":
      return 4;
    case "J":
    case "K":
    case "L":
      return 5;
    case "M":
    case "N":
    case "O":
      return 6;
    case "P":
    case "Q":
    case "R":
    case "S":
      return 7;
    case "T":
    case "U":
    case "V":
      return 8;
    case "W":
    case "X":
    case "Y":
    case "Z":
      return 9;
  }
}

const charArray = WORD.split("");
const timeArray = charArray.map((char) => charToNum(char) + 1);
const resultTime = timeArray.reduce((pre, cur) => pre + cur, 0);

console.log(resultTime);

1. (line 4~41) 각각의 알파벳을 숫자로 변환하는 함수를 정의하였습니다.

2. (line 44) 알파벳 배열의 map 함수를 호출하여 알파벳별 입력 시간의 배열을 구합니다.

3. (line 45) 시간 배열의 reduce함수를 호출하여 각각의 시간의 총합을 구합니다.

 

728x90