본문 바로가기
프로그래머스/1단계

(Python/LV1)신규 아이디 추천

by windy7271 2022. 9. 15.
728x90
반응형

문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/72410

 

프로그래머스

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

programmers.co.kr

풀이:

import re
def solution(new_id):



    res = new_id.lower() # 1. 소문자

    res = ''.join(re.compile('[0-9a-z_.\-]+').findall(res)) # 2. 문자제거

    res = re.sub('\.\.+' , '.' , res) # 3. 점 2개 짜리 1개로 바꿈

    res = res.strip('.') # 4. 양쪽 끝 . 제거 strip() 매개변수로 넘겨주는거 문자열 시작/ 끝에서 제거해줌

    if res =='':
        res +='a'	# 빈 거면 a 추가 

    if len(res)>=16:
        res = res[:15]
        res = res.rstrip('.') # 6. 우측 '.' 제거

    if len(res) < 3:
        res = res + res[-1] * (3-len(res))	# 7. 길이 3이하면 마지막 글자 반복

    return res

# 3 에서 다르게 쓰면 아래와 같이 쓸 수 있는데 감명깊다

    while '..' in answer:
        answer = answer.replace('..', '.')
반응형

댓글