안녕 세상아,

[프로그래머스/c++] Lv1 옹알이(2) 본문

프로그래머스

[프로그래머스/c++] Lv1 옹알이(2)

돈 많은 백수가 되고싶다 2025. 1. 4. 17:50

https://school.programmers.co.kr/learn/courses/30/lessons/133499#

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

substr 사용해서 2글자,. 3글자 나눠서 확인한다. 

연속된 두 글자는 옹알이할 수 없기 때문에 첫 글자 저장하고 substr 사용한 후 첫글자 비교해서 다를 때만 answer++ 해준다. 

만약 조건이 맞지 않으면 check를 false로 바꿔준다. 

#include <string>
#include <vector>

using namespace std;

int solution(vector<string> babbling) {
    int answer = 0;
    for (int i = 0; i < babbling.size(); i++) {
        bool check = true;
        string first = "";
        string fib = "";
        for (int j = 0; j < babbling[i].size(); j++) {
            fib = babbling[i][j];
            if (babbling[i].substr(j, 3) == "aya" && first != fib) {
                j += 2;
                first = fib;
            }
            else if (babbling[i].substr(j, 2) == "ye" && first != fib) {
                j += 1;
                first = fib;
            }
            else if (babbling[i].substr(j, 3) == "woo" && first != fib) {
                j += 2;
                first = fib;
            }
            else if (babbling[i].substr(j, 2) == "ma" && first != fib) {
                j += 1;
                first = fib;
            }
            else
                check = false;
        }
        if (check)
            answer++;
    }
    return answer;
}