📖 다음은 해당 문제를 풀면서 알게된 함수이다.
🔑 내가 제출한 답은 다음과 같다.
def solution(new_id):
# 1단계
new_id = new_id.lower()
new_id_list = list(new_id)
# 2단계
for i in reversed(range(0, len(new_id))) :
if new_id_list[i].isalnum()==False and (new_id_list[i] not in ['-', '_', '.']) :
del new_id_list[i]
# 3단계
i = len(new_id_list)-1
while i > 0 :
if new_id_list[i] == '.' :
i -= 1
while new_id_list[i] == '.' :
del new_id_list[i]
i -= 1
if i==-1 : break
i -= 1
# 4단계
lenth = len(new_id_list)
if lenth==1 and new_id_list[0]=='.' :
del new_id_list[0]
if lenth>=2 :
for i in [0, -1] :
if new_id_list[i]=='.' :
del new_id_list[i]
# 5단계
lenth = len(new_id_list)
if lenth==0 :
new_id_list.append('a')
# 6단계
while len(new_id_list)>=16 :
del new_id_list[-1]
if new_id_list[-1]=='.' :
del new_id_list[-1]
# 7단계
lenth = 3-len(new_id_list)
if lenth >= 1 :
last = [new_id_list[-1]]*lenth
new_id_list = new_id_list + last
answer = "".join(new_id_list)
return answer
다른 사람의 풀이를 보고 느낀점
✅ import re
를 하여 정규표현식을 이용하면 간단하게 표현이 가능하다.
✅ 리스트 대신에 문자열을 사용하면서 replace
함수를 사용하면 코드 길이가 짧아진다.