티스토리 뷰

728x90

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

 

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

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

programmers.co.kr

 

  • 해설:

2020년도 카카오 블라인드 1차 코딩테스트 문제이다. 주어진 문자열을 1~7단계를 거쳐 최종적으로 신규 아이디를 추천하면 된다.

 

 

 

  • 풀이:

정규표현식을 사용하면 쉽게 해결할 수 있는 문제이다. 정규표현식의 개념에 대한 이해가 부족해서 Python의 string을 다루는 방법으로 일일히 구현하였다. 

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
def solution(new_id):
    answer = ''
    # 1단계
    new_id = new_id.lower()
    # 2단계
    nid = ''
    for value in new_id:
        if 97 <= ord(value) <= 122 or "0" <= value <= "9" or value == "-" or value == "_" or value == ".":
            nid += value
    # 3단계
    flag = True
    new_id = ''
    for value in nid:
        if value == ".":
            if flag:
                new_id += value
                flag = False
        else:
            new_id += value
            flag = True
    # 4단계
    if new_id:
        if new_id[0== ".":
            if len(new_id) >= 2:
                new_id = new_id[1:]
            else:
                new_id = ""
    if new_id:
        if new_id[-1== ".":
            if len(new_id) >= 2:
                new_id = new_id[:-1]
            else:
                new_id = ""
    # 5단계
    if not new_id:
        new_id = "a"
 
    # 6단계
    if len(new_id) >= 16:
        new_id = new_id[:15]
        if new_id[-1== ".":
            new_id = new_id[:-1]
 
    # 7단계
    if len(new_id) <= 2:
        while len(new_id) <= 2:
            new_id += new_id[-1]
 
 
    return new_id
cs
320x100
댓글
© 2022 WonSeok, All rights reserved