visit
배열을 모두 false
로 초기화해서 지금 포함한 옹알이만 true
표시true
returnflag
변수로 앞서 등장한 옹알이 표시 ➡️ 방문 표시 기능
j
➡️ 4가지 옹알이에 해당하지 않는 경우, false 표시하고 break 해서 옹알이 count
0번 인덱스부터 옹알이 문자열의 마지막 인덱스까지 이동하면서 탐색하기
1. 4가지 옹알이에 대해 if-else
문으로 앞서 방문하지 않았고 substr
로 문자열을 잘랐을 때 해당 옹알이라면 방문표시하고 탐색 인덱스를 해당 옹알이 길이 다음으로 옮겨줌 ➡️ out of range
방지
2. 4가지 옹알이에 해당하지 않는 경우, j
에 false
표시하고 break
해서 j
값이 true
이면 answer++
해서 옹알이 count
code가 일관성 없고 난잡하고 배열 초기화도 너무 빈번함
#include <string>
#include <vector>
using namespace std;
int solution(vector<string> babbling)
{
int answer=0;
for(string s : babbling)
{
int flag=0; bool j=true;
for(int i=0; i<s.length(); i++)
{
if(s.substr(i,3)=="aya" && flag!=1) { flag=1; i+=2; }
else if(s.substr(i,2)=="ma" && flag!=2) { flag=2; i+=1; }
else if(s.substr(i,3)=="woo" & flag!=3) { flag=3; i+=2; }
else if(s.substr(i,2)=="ye" && flag!=4) { flag=4; i+=1; }
else { j=false; break; }
}
if(j==true) answer++;
}
return answer;
}