[알고리즘] 백준 - 신규 아이디 추천 (python 파이썬)

hj·2021년 5월 11일
0

알고리즘

목록 보기
7/35
post-thumbnail

백준 - 신규 아이디 추천

과정

  • 3단계:
    '.'인 경우 '.'이 안 나올 때까지 인덱스+1 해준 걸 저장해서 슬라이싱 해줬다.

풀이

def solution(new_id):
    answer = ''
    allow_str = '~!@#$%^&*()=+[{]}:?,<>/'
    
    # 1 단계
    new_id = new_id.lower()
    tmp_id = ''
    
    # 2 단계
    for i, s in enumerate(new_id):
        if s not in allow_str:
            tmp_id += s
    
    # 3 단계
    i = 0
    while i < len(tmp_id) - 1:
        if tmp_id[i] == '.':
            start = i
            end = i
            while tmp_id[end] == '.' and end < len(tmp_id) - 1:
                end += 1
            tmp = tmp_id[:start] + tmp_id[end - 1:] # 0, 1, 2 (0:3)
            tmp_id = tmp
        i += 1
    # 4 단계
    tmp_id = tmp_id.strip('.')
        
    # 5 단계
    if len(tmp_id) == 0:
        tmp_id = 'a'
    
    # 6 단계
    if len(tmp_id) >= 16:
        tmp_id = tmp_id[:15]
        if tmp_id[-1] == '.':
            tmp_id = tmp_id[:-1]
            
    # 7 단계
    if len(tmp_id) <= 2:
        while len(tmp_id) < 3:
            tmp_id += tmp_id[-1]
    return tmp_id

0개의 댓글