def solution(new_id):
# 3가지 규칙에 위배 되면 role 함수 호출 후 리턴값 리턴
if (len(new_id) < 2) | (len(new_id) > 15):
return role(new_id)
tmp = ''
for i in range(len(new_id)):
# .나오면
if new_id[i] == '.':
# .이 이어지면
if tmp == '.':
return role(new_id)
# 앞뒤로 .
if (new_id[0] == '.') | (new_id[-1] == '.'):
return role(new_id)
# 특수문자
if new_id[i] in ("ASDFGHJKLZXCVBNMQWERTYUIOP~!@#$%^&*()=+[{]}:?,<>/"):
return role(new_id)
# .이 이어지는지 확인
tmp = new_id[i]
return new_id
# 7단계 변경
def role(answer):
# 1단계
answer = answer.lower()
# 2단계
temp = ''
befor_j = ''
for j in range(len(answer)):
if answer[j] in ('asdfghjklqwertyuiopzxcvbnm1234567890-_.'):
# 3단계 .가 2번이상 아니라면
if (answer[j] == '.') & (befor_j == '.'):
continue
temp += answer[j]
befor_j = answer[j]
answer = temp
#4단계
if (len(answer) <= 1) & (answer[0] == '.'):
answer = ''
else:
if 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) <= 2:
answer += answer[-1]
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[파이썬][프로그래머스] Lv. 1 실패율 (0) | 2022.06.21 |
---|---|
[파이썬][프로그래머스] Lv. 1 크레인 인형뽑기 게임 (0) | 2022.06.21 |
[파이썬][프로그래머스] Lv. 1 키패드 누르기 (0) | 2022.06.21 |
[파이썬][프로그래머스] Lv. 1 숫자 문자열과 영단어 (0) | 2022.06.21 |
[파이썬][프로그래머스] Lv. 1 신고 결과 받기 (0) | 2022.06.21 |
댓글