21 Mon
์ ๊ท ์์ด๋ ์ถ์ฒ
'''
https://programmers.co.kr/learn/courses/30/lessons/72410
์ ๊ท ์์ด๋ ์ถ์ฒ
[ํ์ด]
0. ์ ๊ท์ ์ฌ์ฉ ๋ฌธ์ . ์ ๊ท์์ ๋ชจ๋ฅธ๋ค๋ฉด ๋์ฐํ๋ค.
'''
import re
def solution(new_id):
new_id = new_id.lower()
new_id = ''.join(re.findall('[a-z]|[0-9]|[.]|[_]|[-]', new_id))
new_id = re.sub('[.]{2,}', '.', new_id)
if len(new_id) and new_id[0] == ".":
new_id = new_id[1:]
if len(new_id) and new_id[-1] == ".":
new_id = new_id[:-1]
size = len(new_id)
if not size: new_id += "a"
if size >= 16:
new_id = new_id[:15]
if new_id[-1] == ".":
new_id = new_id[:-1]
while len(new_id) < 3:
new_id = new_id + new_id[-1]
return new_id
'''
์ ๊ท์์ด๋ if๋ฅผ ๋๋ฌด ํผ์ฌํด์ ์ฌ์ฉํ ๋ฏ ํ๋ค
๋๋ณด๋ค ๋ ์ ๊ท์์ ์ ์ด ์ฌ๋ ์ฝ๋๋ฅผ ๋ฐฐ์์ผ๊ฒ ๋ค
์ฌ์ง์ด ์ฝ๋ ๊ตฌ์ฑ๋ ๋ฉ์ง๋ค
import re
def solution(new_id):
st = new_id
st = st.lower()
st = re.sub('[^a-z0-9\-_.]', '', st)
# [^] ๋ ํน์ ๋ฌธ์๋ฅผ ์ ์ธํ๋ผ๋ ์๋ฏธ
st = re.sub('\.+', '.', st)
# ์ด ๋ถ๋ถ์ re.sub('[.]{2,}', '.', new_id)์ ์ฐจ์ด๋ ์๋ค.
st = re.sub('^[.]|[.]$', '', st)
# ^๋ ~๋ก ์์ํ๋, $๋ ~๋ก ๋๋๋. ์ด ์ ๊ท์ ๋ฌธ๋ฒ์ ์๊ฐ์ ๋ชปํ๋ค. ๋ฌธ์ ์๋๋ ์ด๊ฑฐ์๋๊ฒ ๊ฐ๋ค
st = 'a' if len(st) == 0 else st[:15]
# 5~6๋จ๊ณ๋ฅผ ํฉ์น ์กฐ๊ฑด. ๋ฉ์๋ค
st = re.sub('^[.]|[.]$', '', st)
# ์ด ๋๋ ์ฒซ ์์์ ๊ณ ๋ คํ์ง ์์๋ ๋๋ค. ๊ทธ๋ฅ ๋ณต๋ถํ ๊ฒ์ผ๋ก ์ถ์ .
st = st if len(st) > 2 else st + "".join([st[-1] for i in range(3-len(st))])
return st
'''
Last updated
Was this helpful?