Algorithm/1일 1코테
[프로그래머스] 2단계 신규 아이디 추천
대인보우
2021. 6. 23. 20:44
반응형
프로그래머스 2단계. 신규 아이디 추천
https://programmers.co.kr/learn/courses/30/lessons/72410#
# 테스트코드 4개 통과 못 함....
def solution(new_id):
# 허용되는 특수문자 리스트
ok_list = ['-', '_', '.']
# 소문자로 바꾸고, ok_list 안에 있거나 알파벳, 숫자
n_id=[i for i in new_id.lower() if i in ok_list or i.isalnum()]
# 답안 변수 생성
answer = ''
# ..이 여러개 붙어 있을 경우에 패스
for i in range(len(n_id)-1):
if n_id[i] == '.' and n_id[i+1] == '.':
continue
else:
answer += n_id[i]
if i == len(n_id)-2:
answer += n_id[-1]
# 길이는 1보다 길고, 맨처음이 .인 경우 제거
if len(answer)>=1 and answer[0] == '.':
answer=answer[1:]
# 길이는 1보다 길고, 맨뒤가 .인 경우 제거
elif len(answer)>=1 and answer[-1] == '.':
answer=answer[:-1]
# 만약 답안의 길이가 0이면 a 넣어주기
if len(answer) == 0:
answer = 'a'
# 길이가 15보다 길면 15까지 짤라
if len(answer) > 15:
answer=answer[:15]
if answer[-1] == '.':
answer=answer[:-1]
# 길이가 2보다 짧으면 맨 마지막 글자 추가
if len(answer) <= 2:
char = answer[-1]
answer += char*5
answer=answer[:3]
return answer
반응형