본문 바로가기

⏳ 알고리즘/python 알고리즘 문제 풀이

프로그래머스 - LV1. 신규 아이디 추천(카카오 2021 블라인드 채용)

문제

https://programmers.co.kr/learn/courses/30/lessons/72410#

 

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

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

programmers.co.kr

 

코드

import re

def solution(new_id):  
    #1단계
    new_id = new_id.lower()
    
    #2단계
    new_id = re.sub('[^a-z0-9-_.]', '', new_id)
    
    #3단계
    while '..' in new_id:
        new_id = new_id.replace("..", ".")
    
    #4단계
    if new_id[0]  == "." and len(new_id) > 1:
        new_id = new_id[1:]
    if new_id[-1] == ".":
        new_id = new_id[:-1]
    
    #5단계
    if len(new_id) == 0:
        new_id += "a"
        
    #6단계
    if len(new_id) >= 16:
        if new_id[14] == ".":
            new_id = new_id[:14]
        else:
            new_id = new_id[:15]
    
    #7단계
    if len(new_id) <= 2:
        while len(new_id) < 3:
            new_id += new_id[-1]
    
    return new_id