정규 표현식을 그대로 사용하여서 풀 수 있는 문제이다.
#include <iostream>
#include <string>
#include <regex>
using namespace std;
int main()
{
ios::sync_with_stdio(0), cin.tie(0);
regex re("(100+1+|01)+", regex::optimize);
string pattern;
int T;
cin >> T;
while (T--)
{
cin >> pattern;
cout << (regex_match(pattern, re) ? "YES" : "NO") << "\n";
}
}
그대로 적용해 줄 수 있다.
|는 두 패턴 중 하나를 일치하면 되는 것이다.