슈뢰딩거의 고등어

[프로그래머스] 신규아이디 추천 본문

알고리즘

[프로그래머스] 신규아이디 추천

슈뢰딩거의 고등어 2022. 2. 8. 10:50

https://programmers.co.kr/learn/courses/30/lessons/72410?language=cpp

 

코딩테스트 연습 - 신규 아이디 추천

카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로

programmers.co.kr

#include <string>
#include <vector>
#include <iostream>

using namespace std;

string solution(string new_id) {
    string answer = "";
    string x = "~!@#$%^&*()=+[{]}:?,<>/";

    for (int i=0; i<new_id.size(); i++) {
        if (new_id[i] >= 65 && new_id [i] <= 90){
            answer+= tolower(new_id[i]);
            continue;
        }

        bool exits = false;
        for(int j=0; j<x.size(); j++) {
            if (new_id[i] == x[j]) {
                exits = true;
                break;
            }
        } 
        if (exits == false)
            answer += new_id[i];

    }

    for(int i=1; i<answer.size();) {
        if (answer[i-1] == '.' && answer[i] == '.'){
            answer.erase(answer.begin() + i);
            continue;
        }
        else
            i++;
    }

    if (answer.front() == '.') answer.erase(answer.begin());
    if (answer.back() == '.') answer.erase(answer.end() - 1);

    if (answer == "")
        answer = "a";

    if (answer.size() >= 16) {
        answer = answer.substr(0, 15);
        if (answer[14] == '.')
            answer = answer.substr(0, 14);
    }

    while (answer.size() < 3) {
        int len = answer.size();
        answer += answer[len-1];

    }

    return answer;
}
Comments