programmers.co.kr/learn/courses/30/lessons/72410
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ ๊ท ์์ด๋ ์ถ์ฒ
์นด์นด์ค์ ์ ์ฌํ ์ ์ ๊ฐ๋ฐ์ ๋ค์ค๋ "์นด์นด์ค๊ณ์ ๊ฐ๋ฐํ"์ ๋ฐฐ์น๋์ด, ์นด์นด์ค ์๋น์ค์ ๊ฐ์ ํ๋ ์ ์ ๋ค์ ์์ด๋๋ฅผ ์์ฑํ๋ ์ ๋ฌด๋ฅผ ๋ด๋นํ๊ฒ ๋์์ต๋๋ค. "๋ค์ค"์๊ฒ ์ฃผ์ด์ง ์ฒซ ์ ๋ฌด๋ ์๋ก
programmers.co.kr
*๋ฌธ์ ๋ด์ฉ์ด ๋ง์ ์๋ต
- 1๋จ๊ณ new_id์ ๋ชจ๋ ๋๋ฌธ์๋ฅผ ๋์๋๋ ์๋ฌธ์๋ก ์นํํฉ๋๋ค.
- 2๋จ๊ณ new_id์์ ์ํ๋ฒณ ์๋ฌธ์, ์ซ์, ๋นผ๊ธฐ(-), ๋ฐ์ค(_), ๋ง์นจํ(.)๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
- 3๋จ๊ณ new_id์์ ๋ง์นจํ(.)๊ฐ 2๋ฒ ์ด์ ์ฐ์๋ ๋ถ๋ถ์ ํ๋์ ๋ง์นจํ(.)๋ก ์นํํฉ๋๋ค.
- 4๋จ๊ณ new_id์์ ๋ง์นจํ(.)๊ฐ ์ฒ์์ด๋ ๋์ ์์นํ๋ค๋ฉด ์ ๊ฑฐํฉ๋๋ค.
- 5๋จ๊ณ new_id๊ฐ ๋น ๋ฌธ์์ด์ด๋ผ๋ฉด, new_id์ "a"๋ฅผ ๋์ ํฉ๋๋ค.
- 6๋จ๊ณ new_id์ ๊ธธ์ด๊ฐ 16์ ์ด์์ด๋ฉด, new_id์ ์ฒซ 15๊ฐ์ ๋ฌธ์๋ฅผ ์ ์ธํ ๋๋จธ์ง ๋ฌธ์๋ค์ ๋ชจ๋ ์ ๊ฑฐํฉ๋๋ค. ๋ง์ฝ ์ ๊ฑฐ ํ ๋ง์นจํ(.)๊ฐ new_id์ ๋์ ์์นํ๋ค๋ฉด ๋์ ์์นํ ๋ง์นจํ(.) ๋ฌธ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
- 7๋จ๊ณ new_id์ ๊ธธ์ด๊ฐ 2์ ์ดํ๋ผ๋ฉด, new_id์ ๋ง์ง๋ง ๋ฌธ์๋ฅผ new_id์ ๊ธธ์ด๊ฐ 3์ด ๋ ๋๊น์ง ๋ฐ๋ณตํด์ ๋์ ๋ถ์ ๋๋ค.
๋ฌธ์ ํด์ค์ด ๊ธธ์ด์ ๊ทธ๋ ์ง ์๊ตฌ์ฌํญ๋๋ก๋ง ์ฝ๋ฉํ๋ฉด ๋๊ธฐ๋๋ฌธ์ ๋ง์ด ์ด๋ ค์ด ๋ฌธ์ ๋ ์๋๋ค.
ํจ์จ์ฑ ํ ์คํธ๋ ์๋์ง๋ผ ํธํ๊ฒ ํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
๋ฐ๋์ ์์ฐจ์ ์ผ๋ก ํ๋ก์ธ์ฑ ํด์ฃผ๋ ๊ฑธ ์์ผ๋ฉด ์๋จ!
def solution(new_id):
answer = new_id[:]
answer = answer.lower() #1๋จ๊ณ:์๋ฌธ์์นํ
#2๋จ๊ณ
answer = [ c for c in answer if c in '1234567890abcdefghijklmnopqrstuvwxyz-_.']
newans = ''
for i, c in enumerate(answer): #3๋จ๊ณ:๋ง์นจํ์ค๋ณต์ ๊ฑฐ
if i > 0 and c=='.' and newans[-1] == '.': pass
else: newans += c
answer = list(newans) #to list
#4๋จ๊ณ
if answer[0] =='.': del answer[0]
if answer and answer[-1]=='.': del answer[-1]
#5๋จ๊ณ
if not answer: answer.append('a')
#6๋จ๊ณ
if len(answer) >=16:
del answer[15:]
if answer[-1]=='.': del answer[-1]
#7๋จ๊ณ
result = ''.join(answer)
if len(answer)<=2: result += result[-1]*(3-len(answer))
return result