반복문으로도 해결할 수 있는 문제겠지만 정규 표현식 연습을 위해 정규 표현식을 사용해 봤다.
#include <iostream>
#include <regex>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(0), cin.tie(0);
int N;
string pattern, input;
cin >> N;
cin >> pattern;
pattern.replace(pattern.find("*"), 1, "\\w*");
regex re(pattern, regex::optimize);
while (N--)
{
cin >> input;
if (regex_match(input, re))
cout << "DA";
else
cout << "NE";
cout << "\n";
}
return 0;
}
패턴을 반복문으로 해결했었는데 다른 사람 풀이를 보니 find와 replace를 사용했다. 문자열에 취약하다는 것을 다시 한번 깨달은 느낌이다.
\w가 알파벳+숫자인 것 또한 알게 됐다.