본문 바로가기

코딩 테스트/프로그래머스

[Level 1, C] 숫자 문자열과 영단어

728x90
반응형

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>

// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
int solution(const char* s) {
    int answer = 0;
    char array[10][6] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
    char answer_array[50] = "";
    int s_index = 0;
    int i_index = 0;

    while (s_index < strlen(s))
    {
        if (s[s_index] >= 48 && s[s_index] <= 57)
        {
            answer_array[i_index++] = s[s_index];
            s_index++;
        }

        for (int i = 0; i < 10; i++)
        {
            if (memcmp(&s[s_index], &array[i], strlen(array[i])) == 0)
            {
                answer_array[i_index++] = i + 48;
                s_index += strlen(array[i]);
            }
        }
    }
    answer = atoi(answer_array);
    return answer;
}
728x90
반응형