728x90
문자의 글자가 모음이 나올때 까지 글자를 맨뒤로 보냅니다.
모음이 나온 경우 맨 뒤에 ay라는 글자를 추가해주고 출력해주는 문제입니다.
모음이 없는 경우 원래 글자에서 ay를 추가하면 됩니다.
모음의 위치를 찾고 substr함수를 통해서 (모음 + 모음 전 글자)와 (모음 후 글자)의
위치를 변경해주었습니다. 그리고 뒤에 ay를 붙여서 출력해주었습니다.
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
bool flag;
char v[5] = { 'a', 'i', 'o', 'e', 'u' };
string s;
string result;
while (1) {
flag = false;
result = "";
cin >> s;
if (s == "#") {
return 0;
}
for (int i = 0; i < s.length(); ++i) {
for (int j = 0; j < 5; ++j) {
if (s[i] == v[j]) {
flag = true;
break;
}
}
if (flag) {
result = s.substr(i, s.length() - i) + s.substr(0, i);
break;
}
}
result += "ay";
if (flag) {
cout << result << endl;
}
else {
cout << s + "ay" << endl;
}
}
return 0;
}
'알고리즘' 카테고리의 다른 글
[C++] 백준 2160번 그림 비교 (0) | 2019.11.04 |
---|---|
[C++] 백준 2804번 크로스워드 만들기 (0) | 2019.11.04 |
[C++] 백준 5612번 터널의 입구와 출구 (0) | 2019.11.04 |
[C++] 백준 6086번 최대 유량 (0) | 2019.10.30 |
[C++] 백준 1298번 노트북의 주인을 찾아서 (0) | 2019.10.29 |