본문 바로가기
Algorithm/구현

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

by HANNI하니 2023. 5. 29.

사용 언어 - Python3

문제 - 신규 아이디 추천

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

정답

구현 (정답 맞춘 여부 O)

2단계에서 i.isalpha() or i.isdigit() 사용하는 게 더 좋을 것 같다

리스트 인덱싱을 할 땐 len(answer)를 생각하기!

 

def solution(new_id):
    answer = ''
    
    # 1단계
    new_id = new_id.lower()
    
    # 2단계
    alpha = 'abcdefghijklmnopqrstuvwxyz'
    num = '0123456789'
    
    for i in new_id:
        if i in alpha:
            answer += i
        elif i in num:
            answer += i
        elif i in ['-','_','.']:
            answer += i 
  
    # 3단계
    while '..' in answer:
        answer = answer.replace('..','.')

    # 4단계
    if answer[0] == '.':
        answer = answer[1:] if len(answer) > 1 else '.'
    if answer[-1] == '.':
        answer = answer[:-1]

    # 5단계 
    if answer == '':
        answer = 'a'
        
    # 6단계
    if len(answer) >= 16:
        answer = answer[:15]
        if answer[-1] == '.':
            answer = answer[0:-1]
    
    # 7단계
    while len(answer) < 3:
        answer += answer[-1]

    return answer

 

 

 

레퍼런스

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

댓글