def solution(new_id):
answer = ''
#1
new_id = new_id.lower()
#2
for id_char in new_id:
if id_char.islower() or id_char.isdigit() or id in ['-','_','.']:
answer += id_char
#3
while '..' in answer:
answer = answer.replace('..','.')
#4
if len(answer) > 1 and answer[0] == '.':
answer = answer[1:]
if answer[-1] == '.':
answer = answer[:-1]
#5
if answer == '':
answer = 'a'
#6
if len(answer) >= 16:
answer = answer[:15]
if answer[-1] == '.':
answer = answer[:-1]
#7
while len(answer)< 3:
answer += answer[-1]
return answer
/ 다른 분들 코드 1 /
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
/ 다른 분들 코드 2 /
def solution(new_id):
answer = ''
# 1
new_id = new_id.lower()
# 2
for c in new_id:
if c.isalpha() or c.isdigit() or c in ['-', '_', '.']:
answer += c
# 3
while '..' in answer:
answer = answer.replace('..', '.')
# 4
if answer[0] == '.':
answer = answer[1:] if len(answer) > 1 else '.'
if answer[-1] == '.':
answer = answer[:-1]
# 5
if answer == '':
answer = 'a'
# 6
if len(answer) > 15:
answer = answer[:15]
if answer[-1] == '.':
answer = answer[:-1]
# 7
while len(answer) < 3:
answer += answer[-1]
return answer
'CodingTest > Programmers' 카테고리의 다른 글
[ 프로그래머스 ] 내적 (0) | 2022.06.22 |
---|---|
[ 프로그래머스 ] 없는 숫자 더하기 (0) | 2022.06.22 |
[ 프로그래머스 ] 신고 결과 받기 (0) | 2022.06.21 |
[ 프로그래머스 ] 체육복 (0) | 2022.06.21 |
[ 프로그래머스 ] H-index (0) | 2022.06.21 |