끄적끄적 코딩
article thumbnail
Published 2019. 11. 4. 11:39
[C++] 백준 9226번 도깨비말 알고리즘

문자의 글자가 모음이 나올때 까지 글자를 맨뒤로 보냅니다.
모음이 나온 경우 맨 뒤에 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;
}

검색 태그