[HackerRank/C++] Beautiful Binary String

2023. 3. 10. 16:36코딩테스트 해커랭크/Algorithms -Easy

문자열 b 안에 "010"이 몇번 포함되어 있는지 return 한다

int beautifulBinaryString(string b)
{
    int result = 0;
    int index = 0;
    string findString = "010";
    
    while (true)
    {
        index = b.find(findString, index);
        
        if (index == std::string::npos)
            break;
            
        ++result;
        index += findString.length();
    }
    
    return result;
}

갯수를 카운트할 result, 검색한 위치를 저장할 index, 찾을 문자열 findString을 선언한다

 

반복문을 돌며 find 함수로 index부터 findString의 문자가 포함되어 있는지 검사해 값을 index에 저장한다

 

찾지 못했다면 std::string::npos를 반환하므로 npos일 경우 break로 빠져나온다

 

찾았다면 find의 반환값을 문자열이 시작되는 인덱스기 때문에 index에 findString.length()만큼의 값을 더해주고 result의 값을 더한다

 

반복문이 종료되면 result의 값을 return 한다