취준일기/코딩테스트

프로그래머스 - 신규 아이디 추천

zooonique 2021. 7. 7. 16:16
반응형

신규 아이디 추천이라는 문제이고, 쉬운 문제인데 문자열 관련된 함수를 자꾸 까먹어서 그것을 정리하는 용도이다.

 

  • str.islower() : 소문자인지 확인하는 함수
    return True / False
  • str.isdigit() : 숫자인지 확인하는 함수
    return True / False
  • str.replace(str1,str2) : str에서 str1 -> str2
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
def step_2(new_id):
    items = ['-','_','.']
    for i in new_id:
        if i.islower()==True or i.isdigit() == True or i in items:
            continue
            
        else:
            new_id = new_id.replace(i,'')
            
    return new_id
 
 
def step_3(new_id):
    if '..' in new_id :
        new_id = new_id.replace('..','.')
        return step_3(new_id)
        
    else:
        return new_id
    
def step_4(new_id):
    
    if len(new_id) == 1 and new_id[0== '.':
        return ''
    
    if new_id[-1== '.':
        print(new_id)
        new_id = new_id[:len(new_id)-1:]
    
    if new_id[0== '.':
        new_id = new_id[1::]
    
    return new_id
 
def step_7(new_id,length):
    if length>2:
        return new_id
    
    else:
        new_id+=new_id[length-1]*(3-length)
        return new_id
 
def solution(new_id):
    answer = ''
    
    # step 1
    new_id = new_id.lower()
    
    # step 2
    new_id = step_2(new_id)
    
    # step 3,4
    new_id = step_3(new_id)
    
    new_id = step_4(new_id)
    
    # step 5
    if new_id == '':
        new_id += 'a'
        
    # step 6
    if len(new_id)>=16:
        new_id=new_id[:15:]
        
    new_id = step_4(new_id)
    
    # step 7
    answer = step_7(new_id,len(new_id))
    
    
    
    
    
    return answer
cs

 

 

반응형