programmers | Lv1. 신규 아이디 추천 [Python]

yeonk·2022년 3월 13일
0

algorithm

목록 보기
63/88
post-thumbnail

💡 Python 3






🔗 문제

신규 아이디 추천 [Link]






💻 코드

할 때마다 새로운 정규 표현식

def solution(new_id):
    import re
    answer = new_id.lower()
    answer = re.sub(r'[^0-9a-z-_.]','', answer)
    answer = re.sub('(([.])\\2{1,})', '.', answer)
    answer = re.sub('^[.]', '', answer)
    answer = re.sub('[.]$', '', answer)
    if answer == '': answer = 'a'
    if len(answer) >= 16: answer = answer[:15]
    answer = re.sub('[.]$', '', answer)
    if len(answer) <= 2:
        t = answer[-1]
        while len(answer) != 3:
            answer += t 
    return answer






💥 다른 사람 코드

문제 풀면서 잘 모르는 부분이 있었는데 이 코드를 보고 알게 됐다 ! 반복되면 \.+ 이렇게 쓰면 되나보다.

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] 정규표현식 기본 re :: regular expression
[Python] 정규식 연속 중복 문자 제거
정규표현식 (regex)
정규식 HOWTO¶

0개의 댓글