#include <string>
#include <vector>
using namespace std;
string solution(string new_id) {
for (string::iterator iter = new_id.begin(); iter != new_id.end();) {
if (*iter >= 65 && *iter <= 90) {
*iter += 32;
}
++iter;
}
for (string::iterator iter = new_id.begin(); iter != new_id.end();) {
if (*iter >= 0 && *iter <= 44 || *iter == 47 ||
*iter >= 58 && *iter <= 64 ||
*iter >= 91 && *iter <= 94 || *iter == 96 ||
*iter >= 123)
iter = new_id.erase(iter);
else
++iter;
}
for (string::iterator iter = new_id.begin(); iter != new_id.end();) {
if (iter != new_id.begin()) {
string::iterator prevIter = prev(iter);
if (*prevIter == '.'&& *iter =='.')
iter = new_id.erase(iter);
else
++iter;
}
else
++iter;
}
for (string::iterator iter = new_id.begin(); iter != new_id.end();) {
if (*iter == '.') {
if (iter == new_id.begin() || iter == new_id.end())
iter = new_id.erase(iter);
else
++iter;
}
else
++iter;
}
if (new_id.empty())
new_id.append("a");
int count = 0;
for (string::iterator iter = new_id.begin(); iter != new_id.end();) {
count++;
if (count >= 16)
iter = new_id.erase(iter);
else
iter++;
}
if (new_id.at(new_id.length() - 1) == '.')
new_id.erase(new_id.length() - 1);
if (new_id.length() <= 2) {
while(new_id.length()<3)
new_id.push_back(new_id[new_id.length() - 1]);
}
string answer = new_id;
return answer;
}
string을 돌면서 한 문자씩 체크하고 for문 내에서 string내 요소를 삭제, 추가하기 위해 반복자를 활용했다.