Notice
Recent Posts
Recent Comments
Link
나의 개발일지
[프로그래머스] Lv.1 신규 아이디 추천 [Python, 파이썬] KAKAO 본문
- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/72410
- 정규식을 잘 사용하면 쉬운 방법으로 풀 수 있겠다.
import re
def solution(new_id):
special = ["~","!","@","#","$","%","^","&","*","(",")","<","=","+","[","{","]","}",":","?",",","<",">","/"]
new_id = new_id.lower() # 1
for i in special: # 2
new_id = new_id.replace(i, "")
new_id = re.sub("\.+", ".", new_id) # 3
if new_id[0] == ".": new_id = new_id[1:] # 4
if new_id != "" and new_id[-1] == ".":
new_id = new_id[:-1]
if new_id == "": # 5
new_id = "a"
if len(new_id) > 15: # 6
new_id = new_id[:15]
while new_id[-1] == ".":
new_id = new_id[:-1]
while len(new_id) <= 2: # 7
new_id += new_id[-1]
print(new_id)
return new_id
- 정규식을 잘 활용한 풀이
import re
def solution(new_id):
st = new_id
st = st.lower()
st = re.sub('[^a-z0-9\-_.]', '', st)
st = re.sub('\.+', '.', st)
st = re.sub('^[.]|[.]$', '', st)
if st == "":
st = 'a'
if len(st) > 15:
st = st[:15]
while st[-1] == ".":
st = st[:-1]
while len(st) <= 2:
st += st[-1]
return st
'프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.2 메뉴 리뉴얼 [Python, 파이썬] KAKAO (1) | 2023.10.07 |
---|---|
[프로그래머스] Lv.3 불량 사용자 [Python, 파이썬] KAKAO (0) | 2023.10.06 |
[프로그래머스] Lv.1 크레인 인형뽑기 게임 [Python, 파이썬] KAKAO (1) | 2023.10.05 |
[프로그래머스] Lv.2 [1차] 프렌즈4블록 [Python, 파이썬] KAKAO (0) | 2023.10.05 |
[프로그래머스] Lv.2 [3차] 파일명 정렬 [Python, 파이썬] KAKAO (1) | 2023.10.04 |
Comments