본문 바로가기
IT/알고리즘

61★] 카카오 블라인드 2021 신규 아이디 추천

by 깻잎쌈 2021. 8. 23.
반응형
 

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

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

programmers.co.kr

 

귀찮지만 단계별로 하나씩 맞춰가면서 풀어간다.

#include <string>
#include <vector>

using namespace std;

string solution(string new_id) {
    string answer1 = "";
    string answer2 = "";
    string answer3 = "";
    string finalAnswer = "";
    
    for(int i = 0; i< new_id.length(); i++){
        // 1단계
        if(new_id[i] >= 'A' && new_id[i] <= 'Z'){
            new_id[i] += 32;
        }
        
        //2단계
        if(new_id[i] == '-' || new_id[i] == '_' || new_id[i] == '.' ||
            (new_id[i] >='0' && new_id[i] <='9') || (new_id[i] >='a' && new_id[i] <='z') ) {
          answer1 += new_id[i];
        }
        
    }
    
    //3단계
    answer2 += answer1[0];
    for(int i = 1; i < answer1.length(); i++){
        if(answer1[i-1] != '.' || (answer1[i-1] =='.' && answer1[i] !='.'))
            answer2 += answer1[i];
    }
    
    //4단계
    if(answer2[0] =='.')
        answer2.erase(0, 1);
    if(answer2[answer2.length()-1] =='.')
          answer2.erase(answer2.length()-1, 1);
    
    //5단계
    if(answer2 == "")
        answer2 += 'a';
    
    //6단계
    if(answer2.length() > 15){
        for(int i = 0; i<15; i++){
            answer3 += answer2[i];
        }
        
    }else{
        answer3 = answer2;
    }
    
    if(answer3[answer3.length()-1] =='.')
        answer3.erase(answer3.length()-1, 1);
    
    //7단계
    if(answer3.length() <= 2){
        char a = answer3[answer3.length()-1];
        while(answer3.length() < 3){
            answer3 += a;
        }
    }
  
    
    finalAnswer = answer3;
    return finalAnswer;
}

 

 

https://tech.kakao.com/2021/01/25/2021-kakao-recruitment-round-1/

 

2021 카카오 신입공채 1차 온라인 코딩 테스트 for Tech developers 문제해설

지난 2020년 9월 12일 토요일 오후 2시부터 7시까지 5시간 동안 2021 카카오 신입 개발자 공채 1차 코딩 테스트가 진행되었습니다. 테스트에는 총 7개의 문제가 출제되었으며, 개발 언어는 C++, Java, Jav

tech.kakao.com

 

반응형

댓글