프로그래머스 풀이

프로그래머스 신규아이디 추천(파이썬)

ag2개발자 2022. 2. 10. 06:49

카카오 2021 블라인드 문제로 나왔었다. 그냥 시키는 대로 구현하면 되는 쉬운 문제지만 꼼꼼하게 하지 않으면 인덱스 오류같은

오류가 난다. 자세한건 주석으로 설명했다.

def solution(new_id):
    answer = ''
    new_id=new_id.lower()    #소문자로
    # print(new_id)
    for i in range(len(new_id)):        #특정문자 외 제거
        if new_id[i].isalpha() or new_id[i].isdigit() or new_id[i] in ["-", "_", "."]:
            answer+=new_id[i]
    # print(answer)
    while ".." in answer:       # .. 를 .로
        answer = answer.replace("..",".")
    if answer[0] ==".":     #처음이나 끝이 .인경우 제거
        answer = answer[1:] if len(answer)>1 else '.'    #빈문자열인 경우 '.' 로 만들어줘서 다음줄에 인덱스오류 막음
    if answer[-1]==".":
        answer= answer[:-1]
    # print(answer)
    if answer =='':     #공백문자열일 경우 'a'로
        answer = 'a'
    if len(answer)>15:      #16글자 이상일때 줄여줌
        answer = answer[:15]
    if answer[-1]==".":     #그 이후 .으로 끝날때 제거
        answer= answer[:-1]
    # print(answer)
    while len(answer)<3:        #2글자 이하일때 마지막글자를 3글자 될때까지 늘려줌
        answer+=answer[-1]
    return answer