https://school.programmers.co.kr/learn/courses/30/lessons/133499
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
Lv. 1
babbling의 문자열s를 순회하며s를 앞에서부터 3자리, 2자리 문자열로 잘라서 각각s1,s2에 저장한다.s1또는s2이 발음할 수 있는 문자열("aya", "ye", "woo", "ma")인지 검사한다.s1또는s2가 발음할 수 있는 문자열이고 이전에 나왔던 발음이 아니라면flag(이전에 나왔던 발음) 변수에 현재 문자열을 저장하고, 문자열s에서s1또는s2를 자른다.s1또는s2가 발음할 수 없는 문자열이라면 반복문에서 빠져나온다.
- 위의 과정을
babbling의 모든 문자열s에 대해s의 길이가 0이 될 때까지 반복한다.
#include <string>
#include <vector>
using namespace std;
int solution(vector<string> babbling) {
int answer = 0;
for (string s : babbling) {
string flag = ""; // 이전에 나온 발음
while (s.size() > 0) {
string s1 = s.substr(0, 3);
string s2 = s.substr(0, 2);
if ((s1 == "aya" || s1 == "woo") && flag != s1) {
flag = s1;
s = s.substr(3);
continue;
} else if ((s2 == "ye" || s2 == "ma") && flag != s2) {
flag = s2;
s = s.substr(2);
continue;
} else {
break;
}
}
if (s.size() == 0)
answer++;
}
return answer;
}'Algorithm' 카테고리의 다른 글
| [프로그래머스/C++] 크레인 인형뽑기 게임 (0) | 2024.02.25 |
|---|---|
| [프로그래머스/C++] 대충 만든 자판 (0) | 2024.02.24 |
| [프로그래머스/C++] 문자열 나누기 (0) | 2024.02.23 |
| [프로그래머스/C++] 둘만의 암호 (0) | 2024.02.23 |
| [프로그래머스/C++] 로또의 최고 순위와 최저 순위 (0) | 2024.02.23 |