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

수민이슈·2023년 4월 25일
0

[C++] 코딩테스트

목록 보기
24/116
post-thumbnail

🖊️ 문제

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

🖊️ 풀이

별로 어렵지 않은 문제였으나..
또 또 문자열
그리고 예외처리 할 일이 많았고, (myea == x인데 o로 나올 수도 있음)
어떻게 처리해야 할지..
그냥 find로 찾아버리면 에러가 났다.

c++ string substr(int a, int b)

원하는 문자열을 반환해주는 함수
a 부터 a+b까지.
반환해주는 문자열은 [a, a+b)

🖊️ 코드

#include <string>
#include <vector>
#include <algorithm>
#include <iostream>

using namespace std;

int solution(vector<string> babbling) {
    int answer = 0;
    
    for (auto& b : babbling) {
        int i = 0;
        int visited = -1;
        bool bTrue = false;
        while(i < b.length()) {
            if (b.substr(i, 3) == "aya" && visited != 0) {
                i += 3;
                visited = 0;
            }
            else if (b.substr(i, 2) == "ye" && visited != 1) {
                i += 2;
                visited = 1;
            }
            else if (b.substr(i, 3) == "woo" && visited != 2) {
                i += 3;
                visited = 2;
            }
            else if (b.substr(i, 2) == "ma" && visited != 3) {
                i += 2;
                visited = 3;
            }
            else {
                bTrue = true;
                break;
            }
        }
        if (!bTrue)  {
            answer += 1;
        }
    }
    
    return answer;
}

참고
https://modoocode.com/235

0개의 댓글