문제 링크 : programmers.co.kr/learn/courses/30/lessons/72410

 

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

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

programmers.co.kr

정규 표현식을 이용하면 간단하게 해결할 수 있는 문제다.

다만 처음에 3단계에서 정규표현식을 '.+'로 사용하였는데 계속 모든 답이 "aaa"로 나왔다.

정규표현식을 더 살펴보니 그냥 '.'을 사용하면 문자 전체를 의미하는 것이므로 단순이 '.'을 사용하면 안되고 '\.'을 사용해야 한다.

아직 정규표현식에 대해 익숙하지 않아 헷갈렸던 부분이다.

import re

def solution(new_id):
    answer = new_id
    
    # 1단계
    answer = answer.lower()
    
    # 2단계
    answer = re.sub('[^a-z0-9-_.]', '', answer)
    
    # 3단계
    # 그냥 . ==> 모든 문자, \. ==> 점
    answer = re.sub('\.+', '.', answer)
    
    # 4단계
    answer = answer.strip('.')
    
    # 5단계
    if not answer:
        answer = 'a'
    
    # 6단계
    if len(answer) >= 16:
        answer = answer[:15]
    answer = answer.rstrip('.')
    
    # 7단계
    if len(answer) <= 2:
        last_char = answer[-1]
        while len(answer) < 3:
            answer += last_char
    
    return answer

+ Recent posts