Koala - 14기/코딩테스트 준비 스터디
백준 9996번 한국이 그리울 땐 서버에 접속하지 C++
Kim Doo Hyeon
2024. 3. 31. 00:19
문제
https://www.acmicpc.net/problem/9996
Algorithm
정규식을 활용한다.
C++ 정규식에서 regex_match(str, e)는 정규표현식 e와 문자열 str이 일치함을 나타내고,
모든 문자열을 표현하기위한 정규식 e는 ".*"으로 나타낼 수 있다.
input의 표현식에서 *를 .*으로 바꾸어 정규표현식을 생성한 뒤, regex_match를 수행한다.
Code
#include <bits/stdc++.h>
using namespace std;
#define IAMFAST ios_base::sync_with_stdio(false);cin.tie(0);
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<long long, long long> pll;
int n;
string str;
void INPUT()
{
IAMFAST
cin >> n >> str;
}
void solution()
{
string reg;
for (auto s : str)
{
if (s == '*') reg += ".*";
else reg += s;
}
regex e(reg);
while (n--)
{
string file; cin >> file;
regex_match(file, e) ? cout << "DA\n" : cout << "NE\n";
}
}
int main()
{
INPUT();
solution();
}