🖥️ CS/SW Expert 외의 Algorithms

(프로그래머스 LV1) 카카오 2021년 - 신규 아이디 추천 (C++)

한국의 메타몽 2021. 2. 15. 22:52

문제 링크 : programmers.co.kr/learn/courses/30/lessons/72410#

 

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

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

programmers.co.kr

이 문제에서 주의해야할 사항은 '.', 즉, 마침표의 위치이다.

깊게 생각하지 않아도 무작정 나열해서 풀 수 있는 구현 문제이므로, 마지막에 '.'와 관련된 부분만 별도로 체크를 잘 해주면 된다.

때문에 별도의 설명은 생략하도록 한다.

#include <string>

using namespace std;

string solution(string new_id) {
    string answer = "";
    for(int i=0; i<new_id.size(); i++){
        if(answer.size()>=15) break;
        if(new_id[i]>='A'&&new_id[i]<='Z') answer += new_id[i]+32;
        else if((new_id[i]>='a'&&new_id[i]<='z')||new_id[i]=='-'||new_id[i]=='_'||(new_id[i]>='0'&&new_id[i]<='9')&&new_id[i]!='.') answer += new_id[i];
        else if(new_id[i]=='.'){
            if(answer.size()==0) continue;
            else if(answer[answer.size()-1]=='.') continue;
            else if(answer.size()==14) break;
            else answer+=new_id[i];
        }
    }
    if(answer[answer.size()-1]=='.') answer.erase(answer.size()-1,1);
    if(answer.size()==0) answer = "aaa";
    if(answer.size()<3){
        if(answer[answer.size()-1]=='.') answer[answer.size()-1] = answer[answer.size()-2];
        while(answer.size()!=3){
            answer+=answer[answer.size()-1];
        }
    }
    return answer;
}
테스트 1 통과 (0.01ms, 3.95MB)
테스트 2 통과 (0.01ms, 3.96MB)
테스트 3 통과 (0.01ms, 3.96MB)
테스트 4 통과 (0.01ms, 3.97MB)
테스트 5 통과 (0.01ms, 3.95MB)
테스트 6 통과 (0.01ms, 3.98MB)
테스트 7 통과 (0.01ms, 3.97MB)
테스트 8 통과 (0.01ms, 3.78MB)
테스트 9 통과 (0.01ms, 3.97MB)
테스트 10 통과 (0.01ms, 3.77MB)
테스트 11 통과 (0.01ms, 3.98MB)
테스트 12 통과 (0.01ms, 3.96MB)
테스트 13 통과 (0.01ms, 3.78MB)
테스트 14 통과 (0.01ms, 3.97MB)
테스트 15 통과 (0.01ms, 3.96MB)
테스트 16 통과 (0.01ms, 3.95MB)
테스트 17 통과 (0.01ms, 3.97MB)
테스트 18 통과 (0.01ms, 3.83MB)
테스트 19 통과 (0.01ms, 3.9MB)
테스트 20 통과 (0.02ms, 3.95MB)
테스트 21 통과 (0.02ms, 3.96MB)
테스트 22 통과 (0.02ms, 3.95MB)
테스트 23 통과 (0.01ms, 3.98MB)
테스트 24 통과 (0.01ms, 3.96MB)
테스트 25 통과 (0.01ms, 3.95MB)
테스트 26 통과 (0.01ms, 3.96MB)