728x90
반응형
목차
https://www.acmicpc.net/problem/4659
4659번: 비밀번호 발음하기
좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp
www.acmicpc.net
문제

코드 구현
#include <iostream>
#include<map>
#include<algorithm>
using namespace std;
map<char, int> m; //모음 넣을 map
bool check(string str) {
int cnt = 0; //모음 존재여부
int pass1 = 0; //모음 세어줌
int pass2 = 0; //자음 세어줌
for (int i = 0; i < str.size(); i++) {
if (m[str[i]])
cnt++; //모음 존재여부
if (m[str[i]]) {
pass2 = 0;
pass1++;
}
else {
pass1 = 0;
pass2++;
}
if (pass1 >= 3 || pass2 >= 3) {
return false; //연속 3개이상일 경우 x
}
if (i >= 1) {
char ex = str[i - 1]; //그 전 문자열 비교
if (ex != 'e' && ex != 'o') {
if (ex == str[i])
return false;
}
}
}
if (cnt == 0) //모음 없을 경우x
return false;
else
return true;
}
int main()
{
string str;
m.insert({ 'a', 1 });
m.insert({ 'e', 1 });
m.insert({ 'i', 1 });
m.insert({ 'o', 1 });
m.insert({ 'u', 1 });
while (true) {
cin >> str;
if (str.compare("end") ==0)
break;
if (check(str))
cout << "<" << str << ">" << " is acceptable.\n";
else
cout << "<" << str << ">" << " is not acceptable.\n";
}
}반응형
'PS' 카테고리의 다른 글
| [백준][브루트 포스] 1436번 영화감독 숌 c++구현 (0) | 2024.04.30 |
|---|---|
| [백준][문자열] 2852 NBA 농구 c++구현 (0) | 2024.04.30 |
| [정렬][맵][백준] 2910 빈도 정렬 c++ 구현 (1) | 2024.04.12 |
| [백준][dfs] 2583 영역 구하기 c++ 구현 (0) | 2024.04.04 |
| [백준][bfs] 2468 안전 영역 c++ 구현 (0) | 2024.04.02 |