신규 아이디 추천

발자·2022년 9월 4일
0

programmers

목록 보기
3/34

📖 다음은 해당 문제를 풀면서 알게된 함수이다.

문자열 대문자/소문자 변경하는 방법

문자열이 알파벳/숫자인지 확인하는 방법

🔑 내가 제출한 답은 다음과 같다.

def solution(new_id):

    # 1단계
    new_id = new_id.lower()

    new_id_list = list(new_id)

    # 2단계
    for i in reversed(range(0, len(new_id))) :
        if new_id_list[i].isalnum()==False and (new_id_list[i] not in ['-', '_', '.']) :
            del new_id_list[i]

    # 3단계        
    i = len(new_id_list)-1
    while i > 0 :
        if new_id_list[i] == '.' :
            i -= 1
            while new_id_list[i] == '.' :
                del new_id_list[i]
                i -= 1
                if i==-1 : break
        i -= 1

    # 4단계
    lenth = len(new_id_list)
    if lenth==1 and new_id_list[0]=='.' :
        del new_id_list[0]
    if lenth>=2 :
        for i in [0, -1] :
            if new_id_list[i]=='.' :
                del new_id_list[i]

    # 5단계
    lenth = len(new_id_list)
    if lenth==0 :
        new_id_list.append('a')

    # 6단계
    while len(new_id_list)>=16 :
        del new_id_list[-1]
    if new_id_list[-1]=='.' :
        del new_id_list[-1]

    # 7단계
    lenth = 3-len(new_id_list)
    if lenth >= 1 :
        last = [new_id_list[-1]]*lenth
        new_id_list = new_id_list + last

    answer = "".join(new_id_list)

    return answer

다른 사람의 풀이를 보고 느낀점
import re를 하여 정규표현식을 이용하면 간단하게 표현이 가능하다.
✅ 리스트 대신에 문자열을 사용하면서 replace 함수를 사용하면 코드 길이가 짧아진다.

0개의 댓글