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
반응형