문제 : https://www.acmicpc.net/problem/9996
주요 사항
1. 예시에 나오는 패턴의 접두,접미사 개수가 각각한개씩이다. 그치만 문제에서는 접두접미사가 여러단어일 수 도 있다고 말해두었다. 그러므로 접두접미사를 저장할 때, char로 저장해서는 안된다
2. 패턴의 접두 + 접미사 를 더한 길이가 입력받은 문자열의 길이보다 크다면, 해당 문자열은 패턴을 포함할 수 없다는 뜻이므로 DA를 출력해야한다
풀이 코드
#include<bits/stdc++.h>
using namespace std;
int n;
string p;//패턴
string sP,eP;//시작 패턴, 종료패턴
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin>>n;
cin>>p;
for(int i=0; i<p.size(); i++){
if(p[i]=='*'){
sP = p.substr(0,i); //시작 패턴
eP = p.substr(i+1); //종료 패턴-> 두번째 인수 생략 = 마지막까지 자른다
}
}
while(n--){
string s;
cin>>s;
if(sP.size()+eP.size() > s.size()){
cout << "NE"<<'\n';
}else{
string curS = s.substr(0,sP.size()); //자를 시작 위치, 자를 개수
string curE = s.substr(s.size()-eP.size());
if( curS==sP && curE==eP ){
cout <<"DA"<<'\n';
}else{
cout << "NE"<<'\n';
}
}
}
return 0;
}
'백준 문제풀이' 카테고리의 다른 글
| [백준] 1620 : 나는야 포켓몬 마스터 이다솜 | C++ (2) | 2024.09.17 |
|---|---|
| [백준] 2559번 : 수열 | C++ (0) | 2024.09.17 |
| [백준/boj] 2309번: 일곱 난쟁이 | C++ (0) | 2024.09.11 |
| [백준/boj] 1991번: 트리 순회 | C++ (2) | 2024.04.15 |
| [백준/boj] 1043번: 거짓말 | C++ (0) | 2024.02.26 |