취준일기/코딩테스트
프로그래머스 - 신규 아이디 추천
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 |
반응형