728x90
반응형
문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/72410
풀이:
import re
def solution(new_id):
res = new_id.lower() # 1. 소문자
res = ''.join(re.compile('[0-9a-z_.\-]+').findall(res)) # 2. 문자제거
res = re.sub('\.\.+' , '.' , res) # 3. 점 2개 짜리 1개로 바꿈
res = res.strip('.') # 4. 양쪽 끝 . 제거 strip() 매개변수로 넘겨주는거 문자열 시작/ 끝에서 제거해줌
if res =='':
res +='a' # 빈 거면 a 추가
if len(res)>=16:
res = res[:15]
res = res.rstrip('.') # 6. 우측 '.' 제거
if len(res) < 3:
res = res + res[-1] * (3-len(res)) # 7. 길이 3이하면 마지막 글자 반복
return res
# 3 에서 다르게 쓰면 아래와 같이 쓸 수 있는데 감명깊다
while '..' in answer:
answer = answer.replace('..', '.')
반응형
댓글