https://school.programmers.co.kr/learn/courses/30/lessons/120894
문자열을 첫번째 원소부터 한글자씩 a에 추가하면서 비교하여 숫자가 맞으면 b에 해당 숫자를 넣어준다.
#include <string>
#include <vector>
using namespace std;
long long solution(string numbers) {
long long answer = 0;
string a;
string b;
for(int i = 0; i < numbers.length(); i++)
{
a += numbers[i];
if(a == "zero")
{
b += "0";
a = "";
}
else if(a == "one")
{
b += "1";
a = "";
}
else if(a == "two")
{
b += "2";
a = "";
}
else if(a == "three")
{
b += "3";
a = "";
}
else if(a == "four")
{
b += "4";
a = "";
}
else if(a == "five")
{
b += "5";
a = "";
}
else if(a == "six")
{
b += "6";
a = "";
}
else if(a == "seven")
{
b += "7";
a = "";
}
else if(a == "eight")
{
b += "8";
a = "";
}
else if(a == "nine")
{
b += "9";
a = "";
}
}
answer = stoll(b);
return answer;
}
#include <string>
#include <vector>
using namespace std;
long long solution(string numbers) {
long long answer = 0;
vector<string> num = {
"zero", "one", "two", "three", "four", "five",
"six", "seven", "eight", "nine"
};
int tmp;
for (int i=0; i<num.size(); i++)
{
while ((tmp = numbers.find(num[i])) != string::npos)
{
numbers.replace(tmp, num[i].size(), to_string(i));
}
}
answer = stoll(numbers);
return answer;
}
vector에 미리 인덱스에 맞춰서 숫자에 맞는 문자열을 세팅해놓고 num의 원소로 find해서 해당 위치에 인덱스를 replace 해줌 완성된 숫자문자열을 stoll해서 리턴함