Algorithm

[프로그래머스] Level1 | 신규 아이디 추천 - 파이썬(Python) | 2021 카카오 블라인드 채용

토오오끼 2021. 11. 2. 23:43
728x90

https://programmers.co.kr/learn/courses/30/lessons/72410

 

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

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

programmers.co.kr

오늘도 쉬운 문제 하나 풀고 카카오 기출 레벨 1 문제를 하나 더 풀었다.

'신규 아이디 추천' 문제로 문제에 나온 단계별로 차근차근 풀면 되는 문제이다.


 

1단계에서 7단계로 차근차근 풀면 되는 문제였고 나는 3단계에서 조금 애를 먹었다.

처음부터 for문으로 연속해서 ..이 나오는 경우를 걸러내려고 했으나 생각한대로 잘 되지 않았다. 찾아보니 replace라는 좋은 방법이 있어서 replace를 사용하여 해결했다.

def solution(new_id):
    answer = ''
    
    #1
    new_id = new_id.lower()
    #2
    for s in new_id :
        if s.isalnum() or s in "-_." :
            answer += s
              
    #3
    while '..' in answer :
        answer = answer.replace('..', '.')

    #4
    if len(answer) >=1 :
        for i in range(len(answer)) :
            if answer[0] == '.' :
                answer = answer [1:]
            elif answer[-1] == '.' :
                answer = answer[:-1]
    
    #5
    if len(answer) == 0 :
        answer += 'a'
        
    #6
    elif len(answer) > 15 :
        answer = answer[:15]
        if answer[-1] == '.':
            answer = answer[:-1]
        
    #7
    if len(answer) >0 and len(answer) < 3 :
        while len(answer) < 3:
            answer += answer[-1]
 
    return answer

주석으로 단계를 표시해 뒀다.

3단계 7단계를 어떻게 반복문을 사용할지 고민하다가 for만 쓰다가 while을 잊고 있었는데 '아 맞다 while이 있었지'라고 한번 더 상기시킬 수 있었다 ^^....


해당 문제 풀이 코드

 

GitHub - YOOHYOJEONG/algorithm_practice: 알고리즘 공부 및 코딩테스트 준비

알고리즘 공부 및 코딩테스트 준비. Contribute to YOOHYOJEONG/algorithm_practice development by creating an account on GitHub.

github.com

 

728x90