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
533
2
3-L 틀린 부분 피드백 부탁드립니다.
0
837
2
1-A문제 순열재귀함수 질문입니다.
0
396
1
1-A 일곱난쟁이문제입니다
0
471
1
문제 풀 때 방향성에 대해
0
811
1
맥에서 vs code로 실행 관련 질문입니다
0
530
1
17071번 메모리 초과
0
390
1
1-C질문입니다!
0
428
2
2-B BFS 시간초과질문
0
638
2
1-O 13번 라인
0
447
1
6-J 놀이공원 문제 질문
0
390
1
구현관련 질문
0
492
1
강의 교안
0
322
1
실력을 더 올리고나서 강의를 보는 것이 맞을까요?
0
550
1
안녕하세요! 재귀함수에 관해서 질문드립니다
0
540
1
1-K
0
481
2
3-G번 질문있습니다.
1
482
3
3-C 실행 시간 질문드립니다.
0
504
1
4-A 문제 풀이 질문있습니다.
0
602
2
비트마스킹 연산자 "1의 보수" 영문 표기법
0
442
1
격자탐색 문제에서 BFS 시간복잡도 질문드립니다.
0
351
1
3-O go 함수 질문 드립니다.
1
453
2
4-A 출력 질문
0
308
1
1주차 1-O 질문드립니다
0
266
1





