본문 바로가기

코딩테스트

프로그래머스_0단계_ad 제거하기_C++

 

문제풀이: 이문제는  if(s.find("ad") == string::npos)를 이해해야한다.

#include <string>
#include <vector>

using namespace std;

vector<string> solution(vector<string> strArr) {
    vector<string> answer;
    
    for(string s : strArr)
    {
         if(s.find("ad") == string::npos)
        {
            answer.push_back(s);
        }
    }
    return answer;
}

 

string::npos는 C++ 표준 라이브러리에서 제공하는 string 클래스의 정적 상수이다.

이 값은 string 클래스에서 문자열을 찾지 못한 경우 반환되는 특별한 값이고

string::npos의 값은 보통 -1로 정의되어 있으며,

find() 함수가 문자열을 찾지 못한 경우 해당 값을 반환

따라서 string::npos를 사용하여 find() 함수가 문자열을 찾지 못한 경우를 검사할 수 있습니다.

예를 들어, string::npos는 find() 함수가 호출된 문자열 내에서 찾는 문자열이 존재하지 않을 때 반환됩니다. 따라서 if(s.find("ad") == string::npos)는 문자열 s 내에서 "ad"를 찾지 못한 경우를 검사합니다.