C++/programmers 코딩테스트(level 1) C++

[C/C++] programmers Level 1 옹알이 (1,2)

CE : 하랑 2023. 10. 16. 10:24

 

 

 

 

코드

 

#include <string>
#include <vector>

using namespace std;

int solution(vector<string> babbling) {
    int answer = 0; // 머쓱이의 조카가 발음할 수 있는 단어의 개수 
    
    for(auto s : babbling){
        int usebabbling=0; // 조합해서 사용 가능 -> 사용한 발음 구분
        bool check=true; // 머쓱이의 조카가 발음이 가능한 경우 true
        
        for(int i=0;i<s.size();i++){
            if(usebabbling!=1 && s.substr(i,3)=="aya"){ // aya -> 1
                usebabbling=1;
                i=i+2;
            }else if(usebabbling!=2 && s.substr(i,2)=="ye"){ // ye -> 2
                usebabbling=2;
                i=i+1;
            }else if(usebabbling!=3 && s.substr(i,3)=="woo"){ // woo -> 3
                usebabbling=3;
                i=i+2;
            }else if(usebabbling!=4 && s.substr(i,2)=="ma"){ // ma -> 4
                usebabbling=4;
                i=i+1;
            }else{
                check=false; // 가능한 발음이 없는 경우 -> false
                break;
            }
        }
        
        if(check){ // 가능한 발음인 경우 true 유지 -> answer 값 카운트
            answer++;
        }
    }
    
    return answer;
}