Algorithm/Programmers

[Python] 신규 아이디 추천

느낌표 공장장 2021. 4. 5. 23:13
import re
def solution(new_id):
    # 1. 소문자로 변환
    new_id = new_id.lower()
    
    # 2. 특수문자 제거
    new_id = re.sub('[^a-z0-9\.\_\-]','',new_id) 
    
    # 3. 마침표가 연속인 부분 치환
    new_id = re.sub('\.\.+', '.', new_id)
    
    # 4. 마침표가 처음이나 끝에 위치하면 제거
    new_id = re.sub('^\.|\.$', '', new_id)
    
    # 5. 빈 문자열이면 "a" 대입
    if new_id == "" :
        new_id = "a"
    
    # 6. 15자 이하로 맞추기
    if len(new_id) > 15 :
        new_id = re.sub('\.$', '', new_id[0:15])
    
    # 7. 2자 이하이면 마지막 문자 반복
    for i in range(3) :
        if len(new_id) < 3 :
             new_id = new_id + new_id[-1] 
            
    answer = new_id
    
    return answer

정규표현식을 잘 알고있다면 어렵지 않은 문제 ! 

난 정규 표현식을 더 공부해야겠다고 느낀 문제였다 ^..ㅜ

'Algorithm > Programmers' 카테고리의 다른 글

[Python] 가운데 글자 가져오기  (0) 2021.04.06
[Python] 모의고사  (0) 2021.04.06
[Python] 크레인 인형 뽑기 게임  (0) 2021.04.05
[Python] 두 개 뽑아서 더하기  (0) 2021.04.04
[Python] 기본 수학 1  (0) 2021.02.11