👾(Lv.01)신규 아이디 추천
https://school.programmers.co.kr/learn/courses/30/lessons/72410
def solution(new_id):
answer = ''
index=0
#가능한 문자들 정의
valid=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','-','_','.','0','1','2','3','4','5','6','7','8','9']
#new_id를 str의 리스트로 변경
ll=list(map(str,new_id))
for l in range(len(ll)):
#처음에 . 를 추가하려는 시도 거르기
if len(answer)==0 and ll[l]=='.':
continue
#연속적으로 . 을 추가하는 것 거르기
elif ll[l]=='.' and answer[-1]=='.':
continue
#vaild 안에는 없지만 대문자는 추가해줘야하니까
elif ll[l].isupper():
answer+=ll[l].lower()
continue
#그 이외에 vaild 안에 없는 문자들 거르기
elif str(new_id[l]) not in valid:
continue
#위의 조건들을 다 통과하면 해당 문자 answer에 추가
answer+=str(new_id[l])
if len(answer) > 0 and answer[-1]=='.':
answer=answer[:-1]
if len(answer)==0:
answer+='a'*3
if len(answer)>=16:
answer=answer[:15]
if len(answer) > 0 and answer[-1]=='.':
answer=answer[:-1]
if len(answer)<=2:
while len(answer) < 3:
answer += answer[-1]
return answer