cgy12306

2021 카카오 신입공채 1차 문제 1번 - 아이디 추천 본문

Algorithm

2021 카카오 신입공채 1차 문제 1번 - 아이디 추천

cgy12306 2021. 9. 8. 19:28
#include <vector>
#include <iostream>
#include<algorithm>
#include <string>
using namespace std;

string solution(string new_id) {
    string answer = new_id;
    int size;
    
    //#1
    for(int i=0;i<answer.size();i++){
        if(answer[i]>='A' && answer[i]<='Z') answer[i]+='a'-'A';
    }

    //#2
    for(int i=0;i<answer.size();i++){
        if(!((answer[i]>='a' && answer[i]<='z') || (answer[i]>='0' && answer[i]<='9') ||answer[i]=='-' || answer[i]=='_' || answer[i]=='.')){
            answer.replace(i,1,"");
            i--;
        }
    }
    
    //#3
    for(int i=0;i<answer.size();i++){
        if(answer[i]=='.' && answer[i+1] =='.' && answer[i+2] =='.'){
            answer.replace(i, 3, "..");
            i--;
        }else if(answer[i]=='.' && answer[i+1] =='.'){
            answer.replace(i, 2, ".");
            i--;
        }
    }

    //#4
    if(answer[0]=='.') answer.replace(0,1,"");
 
    //#5
    if(answer.size()==0)answer="a";
    
    //#6
    if(answer.size()>15) answer.replace(15, answer.size()-15,"");
    if(answer[answer.size()-1]=='.') answer.replace(answer.size()-1,1,"");
    
    //#7
    if(answer.size()==1){
        answer+=answer+answer;
    }
    else if(answer.size()==2){
        answer+=answer[1];
    }
    
    
    return answer;
}

'Algorithm' 카테고리의 다른 글

[백준 BoJ] 11725 - 트리의 부모 찾기  (0) 2021.07.05
Comments