본문 바로가기

코딩테스트

[코딩테스트] 숫자 문자열과 영단어

문제

 


코드

#include <string>
#include <vector>

using namespace std;

int toNumbeer(string str)
{
    if (str == "orez")
        return 0;
    else if (str == "eno")
        return 1;
    else if (str == "owt")
        return 2;
    else if (str == "eerht")
        return 3;
    else if (str == "ruof")
        return 4;
    else if (str == "evif")
        return 5;
    else if (str == "xis")
        return 6;
    else if (str == "neves")
        return 7;
    else if (str == "thgie")
        return 8;
    else if (str == "enin")
        return 9;

    return 10;
}

int solution(string s) {
    int answer = 0;
    string t = "";
    int size = s.size();
    int value = 1;

    for (int i = size - 1; i >= 0; i--)
    {
        if (isdigit(s[i]) == 0) // 0이면 문자 크면 숫자
        {
            t += s[i];

            int a = toNumbeer(t);
            if (a != 10)
            {
                t = "";
                answer += a * value;
                value *= 10;
            }
        }
        else
        {
            answer += (s[i] - '0') * value;
            value *= 10;
        }
    }

    return answer;
}

'코딩테스트' 카테고리의 다른 글

[코딩테스트] 프린터  (0) 2021.09.12
[코딩테스트] 더 맵게  (0) 2021.09.11
[코딩테스트] 오픈채팅방  (0) 2021.08.26
[코딩테스트] 카펫  (0) 2021.08.22
[코딩테스트] 타겟 넘버  (0) 2021.08.20