my study.

Coding Test/Programmers

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

fftl 2021. 12. 28. 21:19
 

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

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

programmers.co.kr

카카오에서 나온 문제입니다. 난이도는 쉬운편으로 문제에 주어지는대로 구현을 하기만 하면 되는 문제였습니다. 크게 사용되는 기술은 없었고 정수인지 판별, 영어인지 판별, 공백제거, 문자 변환 등의 기능을 사용하여 구현했습니다.

 

def solution(new_id):
    answer = '';
    #1단계
    new_id = new_id.lower();
    print(new_id);
    
    #2단계
    allow = ["-","_","."];
    arr = list(new_id);
    new = "";
    for i in range(len(arr)):
        if not arr[i].isdigit() and not arr[i].isalpha():
            if arr[i] not in allow:
                continue;
            else:
                new += arr[i];
        else:
            new += arr[i];
            
    new_id = new;
    print(new_id);
    
    #3단계
    arr = new_id;
    count = 0;
    new = "";
    for i in range(len(arr)):
        if arr[i] == ".":
            count += 1;
        else:
            if count != 0:
                new += "."+arr[i];
                count = 0;
            else:
                new += arr[i];
    
    if count != 0:
        new += ".";
    
    new_id = new;
    print(new_id);
    
    #4단계
    if len(new_id) != 0:
        if new_id[0] == ".":
            new_id = new_id[1:];
            
    if len(new_id) != 0:
        if new_id[-1] == ".":
            new_id = new_id[:len(new_id)-1];
    
    print(new_id);
    
    #5단계
    if new_id == "":
        new_id = "a";
    
    #6단계
    if len(new_id) >= 16:
        new_id = new_id[0:15];
    
    if new_id[-1] == ".":
        new_id = new_id[:len(new_id)-1];
    
    #7단계
    if len(new_id) <= 2:
        while(len(new_id) != 3):
            new_id += new_id[-1];
            
    answer = new_id;
    return answer;