문제
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();
}
'Koala - 14기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/python] 1063 킹 (0) | 2024.03.31 |
---|---|
[백준/C++] 1652번 누울 자리를 찾아라 (0) | 2024.03.31 |
[BOJ/C++] 2230 수 고르기 (0) | 2024.03.28 |
[백준/C++] 5635번: 생일 (0) | 2024.03.28 |
[백준/Python] 2473 - 세 용액 (0) | 2024.03.27 |