9996번 질문있습니다
지나가는 학생입니다.큰돌 선생님의 의견과는 다를 수 있습니다. 도움이 되실까 적어봅니다. 참고만 하시는게 좋을 듯합니다.1. input 입력 문자열의 크기는 forward_str이 길이를 넘어설 수 없습니다. 2. input.substr(input.length() - back_str.length(), input.length() - 1)에서 input.length가 back_str.length(), input.length()보다 작거나 같다면 음수 인덱싱을 하여 undefined behavior 즉 정의되지 않은 동작이 발생하여 런타임 에러가 나는 부분이 보입니다.작성하신 코드 전에 if (input.length() 이런 예외가 있으면 좋을 듯 합니다. (사진) 혹시 몰라 소스 코드도 동봉해드려요.#include "bits/stdc++.h"using namespace std;int N; // 입력할 문자열의 개수string input, contrast; // 입력할 문자, 대조할 패턴bool YN[104]; // 일치 유무string forward_str, back_str; // 앞부분 문자열, 뒷부분 문자열int main() { cin >> N; cin >> contrast; forward_str = contrast.substr(0, contrast.find('*')); back_str = contrast.substr(contrast.find('*') + 1); for (int i = 0; i { cin >> input; if (input.length() { YN[i] = 0; continue; } if (forward_str == input.substr(0, forward_str.length()) && back_str == input.substr(input.length() - back_str.length())) YN[i] = 1; else YN[i] = 0; } for (int i = 0; i { if (YN[i] == 1) cout else cout } return 0;}