최대 1 분 소요

Question

Q1 Q2 Q3


Solution

  • 각각의 숫자에 대응되는 영단어들을 배열형태로 선언한다. (나는 vector를 이용했다)
  • string temp에 입력받은 string s를 for문으로 한 문자씩 받으며 영단어와 일치하는 것이 있는지 탐색한다.
  • 추가로 숫자자체로 들어왔는지도 확인해야한다.
  • 탐색됬으면 answer에 넣고 temp는 비우고 다음 문자를 가져온다.

Cord

#include <string>
#include <vector>

vector<string> v = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
string answer;

int solution(string s) {

    string temp = "";
    for (int i = 0; i < s.size(); i++)
    {
        temp += s[i];

        for (int j = 0; j < v.size(); j++)
        {
            if (temp == v[j])
            {
                answer += j + '0';
                temp = "";
                break;
            }
            else if (temp >= "0" && temp <= "9")
            {
                answer += temp;
                temp = "";
                break;
            }
        }
    }

    return stoi(answer);
}

Result

Result