인프런 커뮤니티 질문&답변

넷플릭스100님의 프로필 이미지
넷플릭스100

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

1-G질문있습니다

작성

·

197

0

강의 재밌게 듣고 있습니다
그런데 1-G에서 반례(크기까지 고려)고려해야 한다고 하신 부분까지 반영되었다고 생각하는데 맞왜틀이 됩니다... 혹시 어디서 틀려서 그런지 알려주시면 정말 감사하겠습니다.
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int tc;
    string pattern;
    
    cin>>tc;
    cin>>pattern;
    
    string front="";
    string back="";
    bool chk = false;
    
    for(auto c: pattern){
        if(c=='*') {chk=true;continue;}
        if(!chk) front+=c;
        else back+=c;
    }
    
   
    while(tc--){
        string test;
        cin>>test;
        int pos1=0,tmp1;
        vector<int> v1;
        while((tmp1=(int)test.find(front,pos1))!=-1)
        {
            v1.push_back(tmp1);
            pos1=tmp1+1;
        }
        int pos2=0,tmp2;
        vector<int> v2;
        while((tmp2=(int)test.find(back,pos2))!=-1)
        {
            v2.push_back(tmp2);
            pos2=tmp2+1;
        }
        bool fin = false;
        for(auto i : v1){
            for(auto j : v2){
                if(i+front.size()<=j) {cout<<"DA"<<'\n';fin=true;break;}
            }
            if(fin) break;
        }
        if(!fin) cout<<"NE"<<'\n';
    }
}

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요. 넷플릭스100님 ㅎㅎ

 

나름 잘 짜셨는데요. 제가 반례를 하나 드리죠.

 

1

a*b

bababababa

 

넷플릭스100님의 코드를 돌려보면 DA가 나오는데요.

맞는걸까요?

 

 

또 질문사항있으시면 언제든 말씀 부탁드립니다. 

감사합니다. 

강사 큰돌 올림. 

넷플릭스100님의 프로필 이미지
넷플릭스100

작성한 질문수

질문하기