본문 바로가기

코테

[프로그래머스] <신규 아이디 추천> 파이썬

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

 

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

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

programmers.co.kr

노가다, 기초 점검에 좋음

def solution(new_id):
    char = list(new_id)
    # 1단계
    for i, c in enumerate(char) : 
        if ord(c) >= ord("A") and ord(c) <= ord("Z") :
            char[i] = chr(ord(new_id[i])+32)
    # 2단계
    for i,c in enumerate(char) :
        if ( ord(c) < ord("a") or ord(c) > ord("z")) and c not in "1234567890" and c not in '-_.' :
            char[i] = ""
    #3단계
    new_id = "".join(char)
    while ".." in new_id:
        new_id = new_id.replace('..','.')
    #4단계
    char = list(new_id)
    if len(char) >= 1 :
        if char[0] == "." :del char[0]
    if len(char) >= 1 :
        if char[-1] == "." : del char[-1]
    #5단계
    if len(char) == 0 : char.append("a")
    #6단계
    if len(char) > 15 : char = char[:15]
    if char[-1] == "." : char = char[:-1]
    #7단계
    if len(char) <= 2 :
        while len(char) < 3 :
            char.append(char[-1])

    return "".join(char)  

정확성 테스트

테스트 1 통과 (0.01ms, 10.3MB)
테스트 2 통과 (0.01ms, 10.1MB)
테스트 3 통과 (0.02ms, 10.2MB)
테스트 4 통과 (0.02ms, 10.3MB)
테스트 5 통과 (0.02ms, 10.3MB)
테스트 6 통과 (0.02ms, 10.2MB)
테스트 7 통과 (0.02ms, 10.3MB)
테스트 8 통과 (0.02ms, 10.3MB)
테스트 9 통과 (0.01ms, 10.2MB)
테스트 10 통과 (0.01ms, 10.2MB)
테스트 11 통과 (0.02ms, 10.2MB)
테스트 12 통과 (0.04ms, 10.2MB)
테스트 13 통과 (0.03ms, 10.3MB)
테스트 14 통과 (0.02ms, 10.2MB)
테스트 15 통과 (0.03ms, 10.2MB)
테스트 16 통과 (0.07ms, 10.3MB)
테스트 17 통과 (0.17ms, 10.3MB)
테스트 18 통과 (0.29ms, 10.2MB)
테스트 19 통과 (0.53ms, 10.2MB)
테스트 20 통과 (0.53ms, 10.3MB)
테스트 21 통과 (0.57ms, 10.3MB)
테스트 22 통과 (0.55ms, 10.3MB)
테스트 23 통과 (0.45ms, 10.3MB)
테스트 24 통과 (0.60ms, 10.2MB)
테스트 25 통과 (0.43ms, 10.1MB)
테스트 26 통과 (0.44ms, 10.2MB)

채점 결과

정확성: 100.0

합계: 100.0 / 100.0