이것도 레벨 1 프로그래머스 문제이다.
주어진 조건대로 그냥 구현했더니 통과했다.

원래 단계별로 괄호로 나누려했는데 하다보니 그냥 해버렸다 ㅎㅎ...
substr을 유용하게 쓴 문제였다.
string solution(string new_id) {
string answer = "";
{
for (int i = 0; i < new_id.size(); i++) {
if (new_id[i] >= 'A' && new_id[i] <= 'Z') {
new_id[i] = new_id[i] - 'A' + 'a';
}
}
}
{
string ans = "";
for (int i = 0; i < new_id.size(); i++) {
if ((new_id[i] >= 'a' && new_id[i] <= 'z')||
new_id[i]=='-'|| new_id[i] == '_' || new_id[i] == '.' ||
(new_id[i] >= '0' && new_id[i] <= '9')) {
ans += new_id[i];
}
}
string ans2 = "";
bool check = false;
for (int i = 0; i < ans.length(); i++) {
if (ans[i] == '.') {
if (check == true) {
check = true;
}
else {
ans2 += ans[i];
check = true;
}
}
else {
ans2 += ans[i];
check = false;
}
}
if (ans2[0] == '.') {
ans2 = ans2.substr(1, ans.length() - 1);
}
if (ans2[ans2.length() - 1] == '.') {
ans2 = ans2.substr(0, ans2.length() - 1);
}
if (ans2.length() == 0) {
ans2 += 'a';
}
if (ans2.length() > 15) {
ans2 = ans2.substr(0, 15);
}
if (ans2[ans2.length() - 1] == '.') {
ans2 = ans2.substr(0, ans2.length() - 1);
}
if (ans2.length() < 3) {
while (1) {
ans2 += ans2[ans2.length() - 1];
if (ans2.length() > 2) {
break;
}
}
}
answer = ans2;
}
return answer;
}'코딩테스트' 카테고리의 다른 글
| 프로그래머스 카카오 프렌즈 컬러링북 (0) | 2021.04.21 |
|---|---|
| 프로그래머스 키패드 누르기 (2) | 2021.04.20 |
| 프로그래머스 크레인 인형 뽑기 (0) | 2021.04.20 |
| 백준 10773 제로 (1) | 2021.04.19 |
| 백준 1110 더하기 사이클 (0) | 2021.04.19 |
댓글