μ΅κ·Ό κΉλν λ°μ¬λ μλ μ보 μ νλ§μκ²½μμ star Vega(μ§λ μ±) μΌλ‘λΆν° μμ ν μ ν κΈ°λ‘μ μΌλΆλ₯Ό μ‘°μ¬νμ¬ κ·Έ μ νλ€μ ν¨ν΄μ λΆμνμ¬ μλμ κ°μ΄ κΈ°λ‘νμλ€.
(100+1+ | 01)+
κΉλν λ°μ¬λ λ€μν μ ν κΈ°λ‘ μ€μμ μμ ν¨ν΄μ μ§λλ μ νλ₯Ό κ°λ €λ΄λ νλ‘κ·Έλ¨μ νμλ‘ νλ€. μ΄λ₯Ό μνν μ μλ νλ‘κ·Έλ¨μ μμ±νλΌ.
#include <iostream>
#include <string>
using namespace std;
int T;
string s;
int state[9][2] = { {7, 1},
{2, -1},
{3, -1},
{3, 4},
{7, 5},
{6, 5},
{3, 0},
{-1, 8},
{7, 1} };
int main() {
cin >> T;
while (T--) {
cin >> s;
int states = 0;
int isPattern = 1;
for (int i = 0; i < s.length(); i++) {
if ((states = state[states][s[i]-'0']) == -1) {
isPattern = 0;
break;
}
}
if (isPattern && (states == 0 || states == 4 || states == 5 || states == 8)) cout << "YES\n";
else cout << "NO\n";
}
return 0;
}
regex_match(string, regex)
λ ν΄λΉ stringμ΄ μ κ·ννμ regexλ₯Ό λ§μ‘±νλμ§ μ¬λΆλ₯Ό 리ν΄νλ€.#include <iostream>
#include <string>
#include <regex>
using namespace std;
int T;
string s;
int main() {
cin >> T;
while (T--) {
cin >> s;
if (regex_match(s, regex("(100+1+|01)+"))) cout << "YES\n";
else cout << "NO\n";
}
return 0;
}