Algorithm/Problems

99클럽 코테 스터디 33일차 TIL + 구현

공부좀하시졍 2024. 11. 30. 10:52

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(new_id):
    answer = ''
    # 1단계
    new_id = new_id.lower()
    # 2단계
    for word in new_id:
        if word.isalnum() or word in '-_.':
            answer += word
    # 3단계
    while '..' in answer:
        answer = answer.replace('..','.')
    # 4단계
    answer = answer[1:] if answer[0] == '.' and len(answer) > 1 else answer
    answer = answer[:-1] if answer[-1] == '.' else answer
    
    # 5단계
    if len(answer) == 0:
        answer += 'a'
    
    # 6단계
    if len(answer) >= 16:
        answer = answer[:15]
        if answer[-1] == '.':
            answer = answer[:-1]
    # 7단계
    while len(answer) < 3:
        answer += answer[-1]

    return answer
  • isalnum() : 영문이나 한글, 또는 숫자인지 확인하는 함수
  • replace는 처음 해당 문자를 만날 때만 치환해주므로 while문을 사용한다.
  • 문자열 슬라이싱할 때 answer[start:end+1] 이면 end인덱스까지 문자가 잘린다.