본문 바로가기
Algorithm/programmers

programmers 신규 아이디 추천

by 갈잃자 2022. 7. 28.

https://school.programmers.co.kr/learn/courses/30/lessons/72410

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


단순 구현문제이다.

근데 힘들었다ㅠㅡㅠ ..생구현 싫어~

import copy
def solution(new_id):
    answer = ''
    # 1단계
    new_id = new_id.lower()
    #2단계
    new_id = list(new_id)
    arr = ['-','_','.'] + ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']+['0','1','2','3','4','5','6','7','8','9']
    new_id2 = []
    for i in (new_id):
        if i in arr :
            new_id2.append(i)
    #3단계
    b=copy.deepcopy(new_id2)
    a = len(b)
    cnt = 0
    cnt2 = 0
    st = 0
    while cnt2 != a:
        for i in range(st, len(new_id2)):
            if new_id2[i] == '.':
                cnt += 1
                cnt2 +=1
                if cnt >= 2:
                    new_id2.pop(i)
                    st = i
                    break
            else:
                cnt = 0
                cnt2 +=1

    #4단계
    if new_id2[0] =='.':
        new_id2.pop(0)
    #5단계
    if len(new_id2) >=1:
        for i in range(len(new_id2)):
            if new_id2[i] ==' ':
                new_id2[i] = 'a'
    else:
        new_id2.append('a')
    #6단계
    new_id3 = []
    # for i in range(0,15):
    #     new_id3.append(new_id2[i])
    # if new_id3[-1] =='.':
    #     new_id3.pop(-1)
    if len(new_id2) >=16:
        new_id3 = new_id2[0:15:1]
        if new_id3[-1] =='.': new_id3.pop(-1)
    else:
        new_id3 = new_id2
        if new_id3[-1] =='.': new_id3.pop(-1)
    #7단계
    if len(new_id3) <=2:
        while len(new_id3) !=3:
            new_id3.append(new_id3[-1])
    answer=''.join(new_id3)

    return answer

댓글