문제는 어렵지 않았고
enum dial 과 char* dial_str[], char dial_str_len[] 을 조합해서 for문 내에서 인덱스를 알맞게 사용할 수 있도록 조정하였다.
#include <stdio.h>
#include <string.h>
enum dial { ABC = 2, DEF, GHI, JKL, MNO, PQRS, TUV, WXYZ };
int main()
{
const char* dial_str[] = { "" , "" , "ABC", "DEF", "GHI", "JKL", "MNO", "PQRS", "TUV", "WXYZ" };
const char dial_str_len[] = { 0, 0, 4, 4, 4, 4, 4, 5, 4, 5 };
char str[16] = "";
while (scanf("%s", &str) != 1) continue;
char str_len = strlen(str);
char time = 0;
for (int i = 0; i < str_len; i++)
{
for (int j = ABC; j <= WXYZ; j++)
{
for (int k = 0; k < dial_str_len[j]; k++)
{
if (str[i] == dial_str[j][k])
time += 1 + j;
}
}
}
printf("%d", time);
}