https://programmers.co.kr/learn/courses/30/lessons/72410?language=python3 

 

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

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

programmers.co.kr

 


풀이 과정

정규표현식을 사용해서 풀라고 준 문제인 것 같지만 정규 표현식을 사용하지 않고 파이썬 내장 함수를 이용해서 해결하였다.

 

string.lower() => string내의 모든 대문자를 소문자로 바꿔준다.

string.islower() => string내의 모든 문자가 알파벳 소문자로 이루어져 있으면 True, 아니면 False를 반환한다.

string.isdigit() => string내의 모든 문자가 숫자로 이루어져 있으면 True, 아니면 False를 반환한다.

string.replace(문자열 1, 문자열 2) => string내의 모든 문자열 1을 문자열 2로 치환한다.

 

위의 4개의 함수를 사용해서 해결하였다.

 


소스 코드

def solution(new_id):
    new_id = new_id.lower()
    
    answer = ''
    for id in new_id:
        if id.islower() or id.isdigit() or id in '-_.':
            answer += id
    
    while '..' in answer:
        answer = answer.replace('..', '.') # 여러개를 하나로 줄여나감
    
    if len(answer) > 1:
        if answer[0] == '.':
            answer = answer[1:]
        if answer[-1] == '.':
            answer = answer[:-1]
            
    else:
        if answer[0] == '.':
            answer = ''
    
    if answer == '':
        answer = 'a'
    
    if len(answer) >= 16:
        answer = answer[:15]
        if answer[-1] == '.':
            answer = answer[:-1]
    
    while len(answer) <= 2:
        answer += answer[-1]
            
    return answer

+ Recent posts