[프로그래머스 C++]/LEVEL 1
[프로그래머스 C++] 신규 아이디 추천
AKI(JUNI)
2024. 4. 24. 23:48
◈ 문제 설명
◈ 문제 설명 링크
코딩테스트 연습 - 신규 아이디 추천 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
◈ 작성 코드
#include <string>
#include <vector>
using namespace std;
string solution(string new_id)
{
string answer = "";
string ans = "";
for(int i = 0; i < new_id.length(); i++)
{
if(new_id[i] >= 'A' && new_id[i] <= 'Z')
{
ans += new_id[i] + 32;
}
else if(new_id[i] >= 'a' && new_id[i] <= 'z' || (new_id[i] - '0' >= 0 && new_id[i] - '0' <= 9)
|| new_id[i] == '-' || new_id[i] == '_' || new_id[i] == '.')
{
ans += new_id[i];
}
}
string a = "";
for(int i = 0; i < ans.size(); i++)
{
if(ans[i] == '.' && ans[i+1] == '.')
{
}
else
{
a += ans[i];
}
}
string b = "";
if(a[0] == '.' && a[a.size() - 1] != '.')
{
for(int i = 1; i < a.size(); i++)
{
b += a[i];
}
}
else if(a[0] != '.' && a[a.size() - 1] == '.')
{
for(int i = 0; i < a.size() - 1; i++)
{
b += a[i];
}
}
else if(a[0] == '.' && a[a.size() - 1] == '.')
{
for(int i = 1; i < a.size() - 1; i++)
{
b += a[i];
}
}
else
{
b = a;
}
if(b == "")
{
b += 'a';
}
if(b.size() > 15)
{
for(int i = 0; i < 15; i++)
{
if(i < 14)
{
answer += b[i];
}
else
{
if(b[i] != '.')
{
answer += b[i];
}
}
}
}
else
{
answer = b;
}
if(answer.size() < 3)
{
while(answer.size() < 3)
{
answer += answer[answer.size() - 1];
}
}
return answer;
}