백준 문제풀이/String
[C++] 백준 문제풀이 (String) 4659번 비밀번호 발음하기
코딩준우
2023. 6. 28. 17:08
https://www.acmicpc.net/problem/4659
4659번: 비밀번호 발음하기
좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp
www.acmicpc.net
//[C++] 백준 문제풀이 (String)
#include <bits/stdc++.h>
bool test(std::string & s){
bool flag1 = false;
int moCnt = 0;
int jaCnt = 0;
for (int i = 0; i < s.length() - 1; ++i){
if (s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u'){
flag1 = true;
++moCnt;
jaCnt = 0;
if (moCnt >= 3) return false;
}
else {
++jaCnt;
moCnt = 0;
if (jaCnt >= 3) return false;
}
if (s[i] == s[i + 1]){
if (s[i] != 'e' && s[i] != 'o') return false;
}
}
if (s.back() == 'a' || s.back() == 'e' || s.back() == 'i' || s.back() == 'o' || s.back() == 'u'){
flag1 = true;
++moCnt;
jaCnt = 0;
if (moCnt >= 3) return false;
}
else {
++jaCnt;
moCnt = 0;
if (jaCnt >= 3) return false;
}
if (s[s.length() - 1] == s[s.length() - 2]){
if (s[s.length() - 1] != 'e' && s[s.length() - 1] != 'o') return false;
}
if (flag1) return true;
return false;
}
int main(){
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);
std::string s;
while(true){
std::cin >> s;
if (s == "end") break;
if (test(s)){
std::cout << "<" << s << "> is acceptable.\n";
}
else {
std::cout << "<" << s << "> is not acceptable.\n";
}
}
return 0;
}