Algorithm/Programmers

[Programmers] Lv1. 신규 아이디 추천

by somida 2021. 5. 15.

문제

바로가기

 

코딩테스트 연습 - 신규 아이디 추천

카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로

programmers.co.kr

 

풀이

  • 다른 방식으로도 풀었지만, 정규표현식 연습을 위해 정규표현식을 사용해 풀어보았다,

 

코드

import re

def solution(new_id):
    # 1. 모든 대문자 소문자로 치환
    answer = new_id.lower()
    print(answer)
    # 2. 소문자, 숫자, -, _, . 만 남겨두기
    answer = re.sub('[^a-z0-9\-_.]', '', answer)
    # 3. 마침표가 2번 이상이면 하나로 치환
    answer = re.sub('\.+', '.', answer)
    # 4. 마침표로 시작하거나 끝나면 마침표 제거
    answer = re.sub('^[.]|[.]$', '', answer)
    # 5, 6. 빈 문자열이라면 a 대입, 16자 이상이면 15개만 남기기
    answer = 'a' if len(answer) == 0 else answer[:15]
    # 6. 만약 마침표가 끝에 있다면 마침표 제거
    answer = re.sub('^[.]|[.]$', '', answer)
    # 7. 길이가 2자 이하면 길이가 3이 될때까지 마지막 문자 반복
    if len(answer) <= 2:
        answer += answer[-1] * (3 - len(answer))
    return answer

 

반응형

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

[Programmers] Lv1. 3진법 뒤집기  (0) 2021.05.15
[Programmers] Lv1. 예산  (0) 2021.05.15
[Programmers] Lv1. 내적  (0) 2021.05.15
[Programmers] Lv1. 소수 만들기  (0) 2021.05.15
[Programmers] Lv1. 음양 더하기  (0) 2021.05.15

댓글