해결된 질문
작성
·
315
·
수정됨
0
http://boj.kr/7a58b316a27d4759a0374f44dba24267
질문을 너무 많이해서 죄송합니다...
강의를 보기전에 작성한 것인데.. 이게 왜 틀렸는지 모르겠습니다.
선생님 알고리즘과 유사한 것 같고 반례도 잡은 것 같은데..
다음부터는 딴 짓 안하고 substr 쓰겠습니다..
답변 1
1
안녕하세요 승한님 ㅎㅎ
거의 대부분은 잘 짜셨지만
이부분을 해결하지 못합니다 ㅠ
반례:
1
a*a
aa
답 : DA / 승한님 : NE
P.S. 우리 substr() 함수 많이 애용해주세요~ㅎㅎ
제가 승한님 코드를 조금 다듬어 봤는데요. ㅎㅎ
이 코드도 참고해주세요.
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int cnt, ok;
string s, tmp_str;
cin >> cnt;
cin >> s;
int star_pos = 0;
for (int i = 0; i < s.length(); i++) {
if (s[i] == '*') {
star_pos = i;
break;
}
}
for (int i = 0; i < cnt; i++) {
ok = 1;
cin >> tmp_str;
if (s.length() - 1 <= tmp_str.length()) {
for (int j = 0; j < star_pos; j++) {
if (tmp_str[j] != s[j]) {
ok = 0;
break;
}
}
for (int j = 1; j <= s.length() - star_pos - 1; j++) {
if (tmp_str[tmp_str.length() - j] != s[s.length() - j]) {
ok = 0;
break;
}
}
} else {
ok = 0;
}
if (ok) {
cout << "DA" << '\n';
} else {
cout << "NE" << '\n';
}
}
return 0;
}
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.