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

전호영님의 프로필 이미지
전호영

작성한 질문수

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

1-G

1-G 질문입니다.

작성

·

93

0

http://boj.kr/ffd2efb190a74fd4874666aed051a59b

안녕하세요 선생님.

나름대로 반례처리까지 다 했다 생각하는데 런타임 에러가 발생합니다.

예제는 통과하는데 어떤 점이 문제인지 잘 모르겠습니다 ㅜ

답변 1

0

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

안녕하세요 호영님 ㅎㅎ

다음과 같이 size체크 부분을 올리셔야 합니다.

 

나머지 부분은 다 잘 짜셨습니다. ㅎㅎ

#include <bits/stdc++.h>
using namespace std;

int main() {
    string pre;
    string suff;
    int N;
    string pattern;
    cin >> N;
    cin >> pattern;
    int i = 0;  
    while(pattern[i] != 42) {
        i++;
    }
    pre = pattern.substr(0, i);
    suff = pattern.substr(i+1);
    
    for (int i = 0; i < N; i++) {
        string s;
        cin >> s;
         
        if (pre.size() + suff.size() > s.size()) {
            cout << "NE" << "\n";
            continue;
        }
        
        string sStart = s.substr(0, pre.length());
        string sEnd = s.substr(s.length() - suff.length());
         
        if (sStart == pre && sEnd == suff) {
            cout << "DA" << "\n";
        } else {
            cout << "NE" << "\n";
        }
    }
    
    return 0;
}


또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


 

전호영님의 프로필 이미지
전호영

작성한 질문수

질문하기