(C++) 백준 16172 나는 친구가 적다 (Large)

mnaz·2022년 2월 3일

https://www.acmicpc.net/problem/16172

처음 받은 문자열에서 문자만 걸러내고, 찾으려는 문자열이 있는지 확인하면 된다.

나는 친구가 적다(Small)에서는 문자열에서 찾은 문자를 tmp = tmp +S[i] 이런식으로 저장했는데 이 문제에서는 이렇게 풀면 시간초과가 난다 ㅠ

tmp.push_back(S[i]); 으로 구현하면 시간초과가 나지 않았는데,, 저장하며 메모리를 추가로 사용하지 않기 때문인듯 하다.

#include <iostream>
#include <string>
using namespace std;

string S,K,tmp;

int main(){
    cin>>S>>K;

    for(int i=0; i<S.length(); i++) if(isalpha(S[i])) tmp.push_back(S[i]);

    if(tmp.find(K)==string::npos) cout<<"0";
    else cout<<"1";

}

0개의 댓글