split을 이용한 풀이법 질문입니다
#include <bits/stdc++.h>
using namespace std;
vector<string> split(string input, string delimeter)
{
vector<string> ret;
long long pos = 0;
while ((pos = input.find(delimeter)) != string::npos)
{
string token = input.substr(0, pos);
ret.push_back(token);
input.erase(0, pos + delimeter.length());
}
ret.push_back(input);
return ret;
}
int main()
{
// freopen("input.txt", "r", stdin);
int n;
string input;
cin >> n >> input;
string deli = "*";
vector<string> sp = split(input, deli);
for (int i = 0; i < n; i++)
{
string temp;
cin >> temp;
int firstFind = temp.find(sp[0]);
reverse(temp.begin(), temp.end());
reverse(sp[1].begin(), sp[1].end());
int secondFind = temp.find(sp[1]);
bool size = (temp.length() >= input.length() - 1);
if (!firstFind && !secondFind && size)
{
cout << "DA\n";
}
else
cout << "NE\n";
}
return 0;
}
교안에 split이 있길래 활용하고 싶었는데 이 방법으로 하면 틀립니다 .. 질문게시판에 있는 반례는 다 통과했는데 왜 그런지 알 수 있을까요..?
답변 1
0
temp reverse는 왜 하시나요?
0
굉장히 좋은 코드네요. find로 첫번째부터 시작해서 찾으면 0이 뜨니 그걸 기반으로. size도 훌륭하구요.
근데 저 잘못된 점 찾았어요. 아래의 코드요. 이걸 계속해서 반복해서 reverse를 하게 되면 문제가 되지 않을까요? ab가 ba되었다가 ab되었다가 이렇게 될텐데요?
reverse(sp[1].begin(), sp[1].end());
1-E질문입니다!
0
568
2
3-L 틀린 부분 피드백 부탁드립니다.
0
866
2
1-A문제 순열재귀함수 질문입니다.
0
419
1
1-A 일곱난쟁이문제입니다
0
495
1
문제 풀 때 방향성에 대해
0
836
1
맥에서 vs code로 실행 관련 질문입니다
0
560
1
17071번 메모리 초과
0
412
1
1-C질문입니다!
0
448
2
2-B BFS 시간초과질문
0
664
2
1-O 13번 라인
0
458
1
6-J 놀이공원 문제 질문
0
409
1
구현관련 질문
0
520
1
강의 교안
0
345
1
실력을 더 올리고나서 강의를 보는 것이 맞을까요?
0
566
1
안녕하세요! 재귀함수에 관해서 질문드립니다
0
561
1
1-K
0
500
2
3-G번 질문있습니다.
1
517
3
3-C 실행 시간 질문드립니다.
0
526
1
4-A 문제 풀이 질문있습니다.
0
629
2
비트마스킹 연산자 "1의 보수" 영문 표기법
0
455
1
격자탐색 문제에서 BFS 시간복잡도 질문드립니다.
0
371
1
3-O go 함수 질문 드립니다.
1
481
2
4-A 출력 질문
0
325
1
1주차 1-O 질문드립니다
0
284
1





