[Programmers] ์ ๊ท ์์ด๋ ์ถ์ฒ
https://school.programmers.co.kr/learn/courses/30/lessons/72410
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ฌธ์ ํด๊ฒฐ
7๋จ๊ณ๋ฅผ ์์ฐจ์ ์ผ๋ก ๊ตฌํํ๋ฉด ๋๋ ๋ฌธ์
์ธ๋ฐ์์ด ์งง์ ์ฝ๋์ ์์ฌ์์ด์ ๋จ๊ณ๋ฅผ ํฉ์น ์ ์๋ ์๊ฐํ๋ค๊ฐ ๊ทธ๋ฅ ํ ๊ฐ์ฉ ์ฒ๋ฆฌํ๋๊น ํธํด์ ์์ ํ์ง ์์๋ค.๐
2๋จ๊ณ 3๋จ๊ณ์์ ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ง์กฑ์ํฌ ๋๋ง answer์ ์ถ๊ฐํ๋ ๋ถ๋ถ์ด ์๋๋ฐ ๊น๋จน๊ณ ์๋ ์คํฌ์ด ์๊ฐ๋์ ๋ฆฌ๋ง์ธ๋ํ๊ธฐ ์ข์๋ค. ํ ๊ธ์์ฉ ๋น๊ต๋ฅผ ํ์ง๋ง ์ด์ ๊ธ์๋ฅผ ๊ธฐ์ตํ๋ฉด์ ์ค๋ณต์ ์ ๊ฑฐํ๊ณ , ์ ๋ค์ ๋ง์นจํ ์๋์ง ํ์ธํ๊ณ ! (startswith, endswith ์ฒ์ ์จ๋ดค๋ค ใ ใ ) ๋๋จธ์ง๋ ์กฐ๊ฑด๋๋ก ๊ตฌํ๋ง ํ๋ฉด ๋๋ ๋ฌธ์ !!
์ธ๋ฑ์ค๋๋ฌธ์ ์๋ฌ๊ฐ ๋ฌ์๋๋ฐ for๋ฌธ์ ๋๋ฆด ๋ ์ซ์๋ก ํ ๋ i๋ก ํด๋ ์๊ด์์ง๋ง ๋ฌธ์์ด๋ก ์คํํ ๋ char๋ฅผ ์ด๋ค๋ ๊ฑธ ์ฒ์ ์์๋ค. ๋ญ์ง; ์ด์ ๊น์ง ๊ทธ๋ฅ ๊ฐ์ผ๋ก ๋ฌธ์์ด์ char ์ซ์๋ i ๋ก ํ๋๋ฐ ๊ทธ๊ฒ ๋ค ์ด์ ๊ฐ ์๋ ๊ฑฐ์๋ค๋,, ์ถฉ๊ฒฉ
ํ์ด์ฌ์ ๋ฐ๋ก ๊ณต๋ถํ ์ ์ด ์์ด์ ๋ชจ๋ฅด๋ ํจ์๋ ๋๋ฌด ๋ง๋ค๐ฅฒ
์ฝ๋
def solution(new_id):
answer = ''
#1๋จ๊ณ
new_id = new_id.lower()
#2๋จ๊ณ & 3๋จ๊ณ
allowed_chars = set('abcdefghijklmnopqrstuvwxyz0123456789-_.')
previous_char = ''
for char in new_id:
if char == '.' and previous_char == '.':
continue
if char not in allowed_chars:
continue
answer += char
previous_char = char
#4๋จ๊ณ
if answer.startswith('.'):
answer = answer[1:]
if answer.endswith('.'):
answer = answer[:-1]
#5๋จ๊ณ
if len(answer) == 0 :
answer = 'a'
#6๋จ๊ณ
if len(answer) > 15:
answer = answer[:15]
if answer.endswith('.'):
answer = answer[:-1]
#7๋จ๊ณ
if len(answer) < 3:
while len(answer) <= 2:
answer += answer[-1]
return answer