나의 답 :
def solution(new_id):
new_id = new_id.lower()
for i in new_id:
if i in '~!@#$%^&*()=+[{]}:?,<>/':
new_id = new_id.replace(i,'')
while('..' in new_id):
new_id = new_id.replace('..','.')
l=len(new_id)
if(l>0):
if(new_id[0]=='.'):
new_id=new_id[1:]
l=len(new_id)
if(l>0):
if(new_id[l-1]=='.'):
new_id=new_id[:-1]
if(len(new_id) == 0):
new_id='a'
if(len(new_id)>=16):
new_id = new_id[:15]
if(new_id[-1]=='.'):
new_id=new_id[:14]
while(len(new_id)<=2):
new_id=new_id+new_id[-1]
return new_id
다른 사람의 답 :
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
'..' 바꾸는 부분에서 정규표현식쓰려다가 말았는데..
'공부 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 로또의 최고 순위와 최저 순위(파이썬) (0) | 2021.12.29 |
---|---|
[프로그래머스] 소수만들기 (0) | 2021.12.28 |
[프로그래머스] 없는 숫자 더하기(파이썬) (0) | 2021.12.20 |
[프로그래머스] 약수의 개수와 덧셈 (0) | 2021.12.17 |
[프로그래머스] 폰켓몬(파이썬) (0) | 2021.12.15 |