ID랑 패스워드를 입력받아서
소문자/숫자로만 이루어졌는지,
소문자/숫자를 하나 이상 썼는지,
연속된 문자를 3개 이상 쓰지 않았는지
체크하는 문제
맞을까? 정답 체크를 할 수 없는 대회라서 잘 모르겠다
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <map>
#include <vector>
#include <string>
#include <utility>
#include <algorithm>
#include <stack>
#include <queue>
#include <functional>
#include <stdlib.h>
#include <regex>
using namespace std;
string id, pw;
int main() {
cin >> id;
cin >> pw;
regex pattern("(([0-9a-z]*[0-9]+[0-9a-z]*)*)|(([0-9a-z]*[a-z]+[0-9a-z]*)*)");
if (id.length() < 6 || id.length() > 12) {
cout << "F" << endl;
return 0;
}
else if (pw.length() < 8 || pw.length() > 16) {
cout << "F" << endl;
return 0;
}
else if (!std::regex_match(id, pattern)){
cout << "F" << endl;
return 0;
}
else if (!std::regex_match(pw, pattern)) {
cout << "F" << endl;
return 0;
}
else {
bool flag = false;
for (int i = 0; i < id.length() - 3; i++) {
if (id[i + 1] == id[i] && id[i + 2] == id[i + 1]) {
cout << "F" << endl;
return 0;
}
}
for (int i = 0; i < pw.length() - 3; i++) {
if (pw[i + 1] == pw[i] && pw[i + 2] == pw[i + 1]) {
cout << "F" << endl;
return 0;
}
}
}
cout << "T" << endl;
return 0;
}
'코딩 > 알고리즘' 카테고리의 다른 글
마이다스 18년 대회 4번 (0) | 2018.05.12 |
---|---|
마이다스 18년 대회 3번 (0) | 2018.05.12 |
백준 2096 내려가기 (0) | 2018.05.02 |
백준 2470 두 용액 (1) | 2018.05.01 |
백준 11003 최솟값 찾기 (0) | 2018.01.17 |