링크

 

 

import re
def solution(new_id):
    new_id = new_id.lower()
    new_id = re.sub('[^\w\.\-\_]','' ,new_id)  # 
    new_id = re.sub('\.+','.' ,new_id)  # new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환
    new_id = re.sub('^\.|\.$','' ,new_id) # new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거
    if new_id == '':  # 빈 문자열이라면, new_id에 "a"를 대입
        new_id += "a"
        
    if len(new_id) > 15:  # 15자로 슬라이싱 및 마침표 제거 
        new_id = new_id[:15]
        new_id = re.sub('\.$','',new_id)
    
    while len(new_id) < 3:  # 마지막 글자 이어붙이기 
        new_id += new_id[-1:]  

    return new_id
    
    
=================================================
    더 파이써닉한  풀이
=================================================
import re

def solution(new_id):
    st = new_id
    st = st.lower()
    st = re.sub('[^a-z0-9\-_.]', '', st)
    st = re.sub('\.+', '.', st)
    st = re.sub('^[.]|[.]$', '', st)
    st = 'a' if len(st) == 0 else st[:15]
    st = re.sub('^[.]|[.]$', '', st)
    st = st if len(st) > 2 else st + "".join([st[-1] for i in range(3-len(st))])
    return st

'Python 문제풀이 > 프로그래머스&해커랭크' 카테고리의 다른 글

없는 숫자 더하기  (0) 2021.11.17
숫자 문자열과 영단어  (0) 2021.11.17
로또의 최고 순위와 최저 순위  (0) 2021.11.17
두 개 뽑아서 더하기  (0) 2021.01.06
2016년  (0) 2021.01.06
블로그 이미지

hjc_

୧( “̮ )୨

,