https://www.acmicpc.net/problem/2954
size_t 타입으로 문자열의 길이를 표현할 수 있다. for문에서 int i = 0 대신에 size_t i = 0 이런 식으로 넣어주면 된다.
입력받은 문자열의 각 문자에 대해
이렇게 현재 문자가 어떤 문자인지에 따라 인덱스의 증가량이 바뀌기 때문에 일반적인 for (int i = 0; i < sen.length(); i++) 를 쓸 수 없다. 인덱스 증가량을 아래처럼 조건문으로 처리해줘야 한다.
#include <iostream>
#include <string>
using namespace std;
bool isVow(char c) {
return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u';
}
int main() {
string sen;
getline(cin, sen);
string answer;
for (size_t i = 0; i < sen.length();) {
char current = sen[i];
answer.push_back(current);
if (isVow(current)) i += 3;
else i += 1;
}
cout << answer << endl;
return 0;
}