Algorithm
프로그래머스
Python
신규 아이디 추천

신규 아이디 추천

https://school.programmers.co.kr/learn/courses/30/lessons/72410 (opens in a new tab)

풀이

이 문제에 관해서 글을 작성하는 이유는 내가 for 문을 여러번 돌리는 방향을 생각을 못했기 때문이다.

def solution(new_id):
    # 1단계
    new_id = new_id.lower()
    # 2단계
    answer = ''
    for word in new_id:
        if word.isalnum() or word in '-_.':
            answer += word
    # 3단계
    while '..' in answer:
        answer = answer.replace('..', '.')
    # 4단계
    answer = answer[1:] if answer[0] == '.' and len(answer) > 1 else answer
    answer = answer[:-1] if answer[-1] == '.' else answer
    # 5단계
    answer = 'a' if answer == '' else answer
    # 6단계
    if len(answer) >= 16:
        answer = answer[:15]
        if answer[-1] == '.':
            answer = answer[:-1]
    # 7단계
    if len(answer) <= 3:
        answer = answer + answer[-1] * (3-len(answer))
    return answer