/
신규 아이디 추천.cpp
43 lines (32 loc) · 953 Bytes
/
신규 아이디 추천.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/**
* problem : https://programmers.co.kr/learn/courses/30/lessons/72410
* time complexity : O(N). N = |new_id|
*/
#include <string>
#include <vector>
using namespace std;
char COMMA = '.';
string solution(string new_id) {
string answer = "";
for(char c: new_id) {
// #6
if(answer.size() == 15) break;
// #1
if(c >= 'A' && c <= 'Z') c = c - 'A' + 'a';
// #2
if(!((c >= 'a' && c <= 'z') || (c >= '0' && c <= '9')
|| c == '-' || c == '_' || c == COMMA)) continue;
// #4
if(c == COMMA
&& (answer.size() == 0 || answer.back() == COMMA))
continue;
answer.push_back(c);
}
// #4
if(answer.back() == COMMA) answer.pop_back();
// #5
if(answer.size() == 0) answer = "a";
// #7
while(answer.size() <= 2) answer.push_back(answer.back());
return answer;
}