2021 카카오 신입 공채
https://programmers.co.kr/learn/courses/30/lessons/72410

🐥 이건 얻어가자

  • 2단계 → 특정 특수문자들을 제거하는 방법
  • 정규식 쓰는 굇수도 있던데 다른 해설 부분을 참고 ㄷㄷ

코드

def solution(new_id):
    answer = ''

    # 1단계
    answer = new_id.lower()

    # 2단계
    delete = "~!@#$%^&*()=+[{]}:?,<>/"
    for i in range(len(delete)):
        answer = answer.replace(delete[i], "")

    # 3단계
    while answer.replace("..", "") != answer:
        answer = answer.replace("..", ".")

    # 4단계
    if len(answer) > 0:
        if answer[0] == '.': answer = answer[1:]
    if len(answer) > 0:
        if answer[-1] == '.': answer = answer[:-1]

    # 5단계
    if len(answer) == 0:
        answer = "a"

    # 6단계
    if len(answer) >= 16:
        answer = answer[:15]
        if answer[-1] == ".":
            answer = answer[:-1]

    # 7단계
    if len(answer) <= 2:
        while len(answer) < 3:
            answer = answer + answer[-1]

    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
squareyun