컴퓨터기본/문제풀이

[백준] 5622번: 다이얼

차가운오미자 2021. 8. 30. 12:25

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

 

5622번: 다이얼

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

www.acmicpc.net

각 알파벳에 해당하는 다이얼 넘버를 배열로 저장하고, 바로 꺼내 쓰는 방식을 사용했다. 

 

마지막 출력값이, 다이얼 넘버 + 각 넘버를 누르는 수 (즉, 문자열의 길이) 여야 한다는 점이 좀 헷갈렸다

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int alp[26] = { 2, 2, 2, 3, 3, 3, 4, 4, 4,\
        5, 5, 5, 6, 6, 6, 7, 7, 7, 7, \
        8, 8, 8, 9, 9, 9, 9 };

int main(void) {

    string st;
    int sum = 0; 
    cin >> st;

    for (int i = 0; i < st.length(); i++) {
        sum += alp[(int)(st[i]-'A')];
    }

    printf("%d", sum+st.length());

}