📚 목차
오늘부터 프로그래머스에 코딩테스트를
입문부터 시간나는대로 풀어서 정리해보려 한다.
문제는 프로그래머스에 다 나와있으니 따로 올리진 않겠다.
#include <string>
#include <vector>
#include <regex>
using namespace std;
string ReturnResult(int nLength)
{
string strResult("");
for(int i=0; i<nLength; i++)
{
strResult += "1";
}
return strResult;
}
int solution(vector<string> babbling) {
int answer = 0;
string strMatchList[4] = {"aya", "ye", "woo", "ma"};
for(auto& i : babbling)
{
string strTest = i;
for(auto j : strMatchList)
{
/*regex re(j);
if (std::regex_match(strTest, re))
answer++;*/
strTest = regex_replace(strTest, regex(j), "1");
if (strTest == ReturnResult(strTest.size()))
{
answer++;
break;
}
}
}
return answer;
}
일단 나같은 경우에는
regex를 사용해서 풀어봤고,
일치하는 문자를 '1'로 바꿔서(ReturnResult 함수)
모든 문자가 '1'로 바꼈으면
카운트를 하는 형식으로 풀어봤다.
왜 이렇게 했냐하면,
regex_replace로 일치하는 문자를 삭제하다 보니,
문자가 삭제되면서 다시 조건에 만족하는 문자가 만들어지는 경우가 있었다.
"wyeoo" 같은 경우가 해당 경우에 속했다.
ye를 지우면 woo가 되기 때문에
그냥 바뀐건 다른 문자로 변환시켜서 해결했다.
문자열 관련 문제는 확실히 regex 사용하면
풀기 쉬운게 많은 것 같다.
'C, C++ > 코딩테스트 입문 난이도' 카테고리의 다른 글
프로그래머스 코딩테스트 입문 난이도 - 잘라서 배열로 저장하기 (0) | 2023.06.25 |
---|---|
프로그래머스 코딩테스트 입문 난이도 - 문자열 밀기 (0) | 2023.06.25 |
프로그래머스 코딩테스트 입문 난이도 - 종이 자르기 (0) | 2023.06.25 |
프로그래머스 코딩테스트 입문 난이도 - 연속된 수의 합 (0) | 2023.06.25 |
프로그래머스 코딩테스트 입문 난이도 - 다음에 올 숫자 (0) | 2023.06.25 |