[프로그래머스] 2021 KAKAO BLIND RECRUITMENT : 신규 아이디 추천 (C++)
12772 단어 cppalgorithmprogrammersalgorithm
문제 링크 : 신규 아이디 추천
[문제 접근]
문자열을 다루는 문제이고 주어진 조건들을 차근차근 풀어나가면 쉽게 풀 수 있는 문제이다.
[소스 코드]
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string solution(string new_id) {
string answer = "";
// 1단계
transform(new_id.begin(), new_id.end(), new_id.begin(), ::tolower);
// 2단계
string temp = "";
for(int i=0 ; i<new_id.size() ; i++) {
if((new_id[i]>='a' && new_id[i]<='z') || (new_id[i]>='0' && new_id[i]<='9') || new_id[i]=='-' || new_id[i]=='_' || new_id[i]=='.') {
temp += new_id[i];
}
}
new_id = temp;
// 3단계
temp = "";
bool check = false;
for(int i=0 ; i<new_id.size() ; i++) {
if(new_id[i]=='.') {
if(check) continue;
else {
temp += new_id[i];
check = true;
}
} else {
temp += new_id[i];
check = false;
}
}
new_id = temp;
// 4단계
if(new_id[0]=='.') new_id = new_id.substr(1);
if(new_id[new_id.size()-1]=='.') new_id = new_id.substr(0, new_id.size()-1);
// 5단계
if(new_id=="") new_id = "a";
// 6단계
if(new_id.size()>=16) {
new_id = new_id.substr(0, 15);
if(new_id[new_id.size()-1]=='.') new_id = new_id.substr(0, new_id.size()-1);
}
// 7단계
while(new_id.size()<=2) {
new_id += new_id[new_id.size()-1];
}
answer = new_id;
return answer;
}
Author And Source
이 문제에 관하여([프로그래머스] 2021 KAKAO BLIND RECRUITMENT : 신규 아이디 추천 (C++)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@soosungp33/프로그래머스-2021-KAKAO-BLIND-RECRUITMENT-신규-아이디-추천-C저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)