반응형
import re
def solution(new_id):
#1. new_id 대문자 -> 소문자
new_id = new_id.lower()
#2. 알파벳 소문자, 숫자, -, _, . 제외한 나머지 모든 문자 제거
new_id = re.sub("[^a-z0-9-_.]", '', new_id)
#3. .. <-- 연속 2개이상이면 .로 치환
list_new_id = list(new_id)
new_id_arr = []
for char in list_new_id:
if '.' == char and new_id_arr[-1:] == ['.']:
new_id_arr.pop()
new_id_arr.append(char)
else:
new_id_arr.append(char)
new_id = ''.join(new_id_arr)
#4. 마침표가 .처음이거나 끝이면 없애기
new_id = str(new_id).strip('.')
#5. 빈 문자열이면 a를 대입
#6 new_id 16자 이상이면, new_id 15개 문자를 제외한 나머지 문자 제거
if len(new_id) == 0:
new_id = 'a'
elif len(new_id) >= 16:
new_id = new_id[0:15].strip('.')
#7. new_id의 길이가 2자 이하이면 3이 될때까지 new_id의 끝문자를 반복해서 붙인다.
while len(new_id) <= 2:
new_id = new_id + new_id[len(new_id)-1:]
return new_id반응형
'삽집하는 개발들 > 알고리즘' 카테고리의 다른 글
| [14일차][프로그래머스][160586]대충 만든 자판 (0) | 2023.06.27 |
|---|---|
| [14일차][프로그래머스][155652]둘만의 암호 (0) | 2023.06.27 |
| [12일차][프로그래머스][133502]햄버거 만들기 (0) | 2023.06.24 |
| [11일차][프로그래머스][2022 카카오 - 118666]성격유형 검사하기 (0) | 2023.06.21 |
| [10일차][프로그래머스][161990]바탕화면 정리 (0) | 2023.06.20 |