[2021 카카오 블라인드] 신규 아이디 추천 파이썬 풀이

제니의 블로그·2021년 6월 7일
0

알고리즘풀이

목록 보기
3/3

프로그래머스 문제 링크

Regex를 얼마나 잘 다룰 줄 아는지 확인하는 단순한 문제!
요런 귀요미 문제들은 빠르게 빠르게 해결하고 넘어가서 다른 문제에서 시간을 할애해야하는데,,
당황하면 이런거에 시간 많이 쓰는 유리멘탈이당 나는 ㅜ

import re

def solution(new_id):
    # 1 단계
    answer = new_id.lower()
    # 2 단계
    answer = re.sub('[^a-z0-9-_.]+', '', answer)
    # 3 단계
    answer = re.sub('[.]{2,}', '.', answer)
    # 4 단계
    if answer!= '' and answer[0] == '.':
      answer = answer[1:]
    if answer!= '' and answer[-1] == '.':
      answer = answer[:len(answer)-1]
    # 5 단계
    if len(answer) == 0:
      answer = 'a'
    # 6 단계
    if len(answer) >= 16:
      answer = answer[:15]
      if answer[-1] == '.':
        answer = re.sub('.$', '', answer)
    # 7 단계
    if len(answer) <=2:
      answer = answer + answer[-1]*(3-len(answer))
   
    return answer


if __name__ == "__main__":
  print(solution("...!@BaT#*..y.abcdefghijklm"))
  print(solution("z-+.^."))
  print(solution("=.="))
  print(solution("123_.def"))
  print(solution("abcdefghijklmn.p"))
profile
기록하는 아주 믖진 습관!

0개의 댓글