inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Codingmaster님의 게시글

Codingmaster Codingmaster

@skywooya

수강평 작성수
1
평균평점
5.0

게시글 1

질문&답변

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; }

좋아요수
0
댓글수
2
조회수
140