문제

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

출처

[프로그래머스] 신규 아이디 (Python)

코드

import re
def solution(new_id):
    #1단계 소문자 치환
    new_id=new_id.lower()
    
    #2단계 제거
    lvl2 = re.compile('[0-9a-z_.\\-]+')
    new_id = lvl2.findall(new_id)
    new_id = ''.join(new_id)
    
    #3단계 . 압축
    while '..' in new_id:
        new_id = new_id.replace('..','.')
    
    #4단계 양끝 . 제거
    new_id = new_id.strip('.')
    
    #5단계 빈문자열 a 추가
    if new_id =='':new_id+='a'
        
    #6단계 15개제외하고 문자모두제거
    if len(new_id)>=16:
        new_id = new_id[:15]
        new_id = new_id.rstrip('.')#6단계 우측 . 제거
        
    #7단계
    if len(new_id)<=2:
        idSize = len(new_id)
        addchar = new_id[idSize-1:]
        while len(new_id)<3:
            new_id+=addchar
    answer = new_id
    return answer
solution("...!@BaT#*..y.abcdefghijklm")

결과

'bat.y.abcdefghi'