[til] 프로그래머스 신규아이디 추천

유승완유승완
2 min read

🧑‍💻 오늘의 문제: 프로그래머스 Lv.1 ― 신규 아이디 추천

📌 문제 요약

주어진 문자열 new_id를 아래 7단계 규칙에 따라 수정해, 서비스 규격에 맞는 새 ID를 반환한다.

  1. 소문자로 통일

  2. 허용 문자 (소문자, 숫자, - _ .) 외 제거

  3. 마침표가 연속되면 하나로 합치기

  4. 처음 / 끝에 위치한 마침표 제거

  5. 빈 문자열이면 "a" 대입

  6. 길이 16 이상 → 처음 15글자만 남기고, 끝이 . 면 삭제

  7. 길이 2 이하 → 마지막 문자를 길이 3이 될 때까지 반복


🖥️ 파이썬 풀이 (정규식 활용)

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 = new_id.strip('.')

    # 5. 빈 문자열 -> 'a'
    if not new_id:
        new_id = 'a'

    # 6. 길이 16 이상 처리
    new_id = new_id[:15].rstrip('.')

    # 7. 길이 2 이하 처리
    while len(new_id) < 3:
        new_id += new_id[-1]

    return new_id
단계핵심 메서드
1str.lower()
2re.sub('[^a-z0-9\-_.]', '', s)
3re.sub('\.+', '.', s)
4str.strip('.'), rstrip('.')
6슬라이싱 [:15] + rstrip('.')
7while 반복

💡 느낀 점 & 배운 것

  1. 정규식으로 “허용 집합 제외”([^...])와 “연속 문자 압축”(\.+)을 간결히 처리할 수 있다.

  2. 단계별 요구사항이 명확 → 파이프라인 방식(순서대로 변환)이 실수 방지에 효과적.

  3. 문자열 끝에 조건이 걸려 있으면 strip·rstrip을 적절히 선택하기.

  4. 길이 조건(짧음/김) 처리 시 슬라이싱 + 반복문이 깔끔하다.

0
Subscribe to my newsletter

Read articles from 유승완 directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

유승완
유승완