[C++, 프로그래머스 - Lv.0] 옹알이 (1)
사용 언어 : C++
< 문제 내용 >
< 생각 >
해당 문제는 입력받은 데이터 'babling'에서 'aya', 'ye', 'woo', 'ma'에 해당하는 텍스트가 있어야 했다.
예시로 들 수 있는 텍스트가 'ayaye'와 'yemawoo'가 있는데 여기에서 유효한 값을 가진 텍스트는
'ayaye' 하나다.
'yemawoo'는 발음할 수 있는 'ye'가 존재하지만, 'mawoo'는 발음할 수 없으므로 유효하지 않다.
이러한 것들을 기반으로 발음할 수 있는 데이터를 순회하면서 발음이 가능한 것은 특정 문자로 변경하고 이후, 특정 문자를 제외하고도 다른 문자가 남아있다면 넘기고, 특정 문자만 남아있을 때 값을 올려줬다.
이때, 특정 문자가 2개 이상 남아있을 수 있으므로, 중복되는 값을 지워줌으로서 특정 문자가 단수로만 남을 수 있게 처리했다.
< 해결 내용 >
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
int solution(vector<string> babbling)
{
vector<string> answers = { "aya", "ye", "woo", "ma" };
int result = 0;
for (auto bab : babbling)
{
for (auto answer : answers)
{
if (bab.find(answer) != string::npos)
{
size_t fIndex = bab.find(answer);
size_t eIndex = answer.length();
bab.replace(bab.begin() + fIndex, bab.begin() + fIndex + eIndex, "9");
}
}
sort(bab.begin(), bab.end());
bab.erase(unique(bab.begin(), bab.end()), bab.end());
if (bab == "9")
{
result++;
}
}
return result;
}
'코테 > 프로그래머스' 카테고리의 다른 글
[C++, 프로그래머스 - Lv.0] 주사위 게임 3 (0) | 2023.07.19 |
---|---|
[C++, 프로그래머스 - Lv.0] 연속된 수의 합 (0) | 2023.07.19 |
[C++, 프로그래머스 - Lv.0] 안전지대 (0) | 2023.07.19 |
[C++, 프로그래머스 - Lv.0] 겹치는 선분의 길이 (0) | 2023.07.04 |
[C++, 프로그래머스 - Lv.0] 정수를 나선형으로 배치하기 (0) | 2023.07.04 |