문제: https://programmers.co.kr/learn/courses/30/lessons/81301
case1( 내 코드 ) : vector<pair>혹은 map과 replace 사용
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int solution(string s) {
long answer = 0;
vector<pair<string, string>> match{
{"zero", "0"},
{"one", "1"},
{"two", "2"},
{"three", "3"},
{"four", "4"},
{"five", "5"},
{"six", "6"},
{"seven", "7"},
{"eight", "8"},
{"nine", "9"},
};
for(int i=0; i<10; i++){
while(s.find(match[i].first)!=-1){
int idx=s.find(match[i].first);
s.replace(idx, match[i].first.length(), match[i].second);
}
}
answer=stol(s);
return answer;
}
case2: string 배열 및 to_string, replace 사용
코드를 입력하세요
case3: 정규식 regex_replace 사용
#include <bits/stdc++.h> //헤더파일 사용에 유의
using namespace std;
int solution(string s) {
s = regex_replace(s, regex("zero"), "0");
s = regex_replace(s, regex("one"), "1");
s = regex_replace(s, regex("two"), "2");
s = regex_replace(s, regex("three"), "3");
s = regex_replace(s, regex("four"), "4");
s = regex_replace(s, regex("five"), "5");
s = regex_replace(s, regex("six"), "6");
s = regex_replace(s, regex("seven"), "7");
s = regex_replace(s, regex("eight"), "8");
s = regex_replace(s, regex("nine"), "9");
return stoi(s);
}
case4: 별도의 int 변수에 문자열 탐색하며 덧셈하기