과정
- 3단계:
'.'
인 경우 '.'
이 안 나올 때까지 인덱스+1 해준 걸 저장해서 슬라이싱 해줬다.
풀이
def solution(new_id):
answer = ''
allow_str = '~!@#$%^&*()=+[{]}:?,<>/'
# 1 단계
new_id = new_id.lower()
tmp_id = ''
# 2 단계
for i, s in enumerate(new_id):
if s not in allow_str:
tmp_id += s
# 3 단계
i = 0
while i < len(tmp_id) - 1:
if tmp_id[i] == '.':
start = i
end = i
while tmp_id[end] == '.' and end < len(tmp_id) - 1:
end += 1
tmp = tmp_id[:start] + tmp_id[end - 1:] # 0, 1, 2 (0:3)
tmp_id = tmp
i += 1
# 4 단계
tmp_id = tmp_id.strip('.')
# 5 단계
if len(tmp_id) == 0:
tmp_id = 'a'
# 6 단계
if len(tmp_id) >= 16:
tmp_id = tmp_id[:15]
if tmp_id[-1] == '.':
tmp_id = tmp_id[:-1]
# 7 단계
if len(tmp_id) <= 2:
while len(tmp_id) < 3:
tmp_id += tmp_id[-1]
return tmp_id