백준 5622번

CharliePark·2020년 9월 28일
0

TIL

목록 보기
49/67

BOJ 5622 : 다이얼

문제는 어렵지 않았고

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);

}

0개의 댓글