문제 링크 : programmers.co.kr/learn/courses/30/lessons/72410
정규 표현식을 이용하면 간단하게 해결할 수 있는 문제다.
다만 처음에 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
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 완주하지 못한 선수 (0) | 2021.03.20 |
---|---|
[프로그래머스] 단어 변환 (0) | 2021.02.05 |
[프로그래머스] 타겟 넘버 (0) | 2021.02.05 |
[프로그래머스] 다리를 지나는 트럭 (0) | 2021.01.05 |
[프로그래머스] 구명보트 (0) | 2021.01.05 |