Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total



GitHub Contribution
Loading data ...
관리 메뉴

초보 개발자의 일기

Programmers - 신규 아이디 추천 본문

열공일기/코딩연습

Programmers - 신규 아이디 추천

Da다 2021. 7. 15. 10:47

프로그래머스에서 처음 코딩문제를 풀어봤다. 일단 첫인상은... 어려웠다.

난이도 덕분에 풀다보니까 오기도 생기고 해서 열심히 풀어봤다. 정규표현식을 검색해서 풀어봤다. 정규표현식을 사용하니 코드가 간결해서 마음에 든다.

 

아이디를 입력받아 정해진 규칙에 맞게 변경하여 리턴하는 문제이다. 사용언어는 Python3 이다.

 

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

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

programmers.co.kr

import re

def solution(new_id):
    
    # step1. 대문자를 소문자로 전환
    new_id = new_id.lower()
    
    # step2. 소문자와 숫자, '-','_','.'를 제외한 문자 삭제
    new_id = re.sub('[^a-z0-9\-\_\.]', '', new_id)
    
    # step3. 2개이상 연속된 마침표(.)를 1개로 변경
    new_id = re.sub('[\.]+', '.',new_id)
    
    # step4. 양쪽 끝의 마침표 제거
    new_id = new_id.strip('.')
    
    # step5. 아이디가 빈 문자열일 경우 'a'를 대입
    if len(new_id)==0 : new_id = 'a'
    
    # step6. 아이디의 길이가 16이상일 경우(15자 초과) 처음부터 15번째 까지만 저장
    elif len(new_id)>15 : new_id = new_id[0:15]
    new_id = new_id.strip('.')    # 길이조절 후 양 끝의 마침표 다시 제거
    
    # step7. 아이디의 길이가 2이하일 경우 아이디의 마지막 글자를 반복(총 길이가 3이 될 때까지)
    while len(new_id) < 3 : new_id = new_id + new_id[-1]
    
    answer = new_id
    return answer

'열공일기 > 코딩연습' 카테고리의 다른 글

Programmers - 수박수박수박수박수박수?  (0) 2021.08.08
Programmers - 크레인 인형뽑기  (0) 2021.07.19
1085번 - 직사각형에서 탈출  (0) 2021.06.22
4948 - 베르트랑 공준  (0) 2021.06.21
11653 - 소인수분해  (0) 2021.06.18
Comments