๐กsolutions )
๐ฌ ์ด 7๋จ๊ณ๊น์ง ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ชจ๋ ๊ตฌํํ๋ฉด ๋๋ ์๋ฎฌ๋ ์ด์ ๋ฌธ์ ๋ค.
๐ฌ ํด๋น ๋ฌธ์ ๋ฅผ ํ ๋ ์ฃผ์ํด์ผ ํ ์ ์ ๋ฌธ์๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ์ฌ๋ผ์ด์ฑํ ๋ ๋ฌธ์์ด(ํด๋น ๋ฌธ์ ํ์ด์์ ๋ฌธ์๋ฅผ ๋ฆฌ์คํธ์ ์ ์ฅํ์ฌ ์ฌ์ฉํ์) ๊ธธ์ด๊ฐ 0์ด ์๋์ง, ์ธ๋ฑ์ค ์๋ฌ๊ฐ ๋์ง ์๋์ง ํ์ธํด์ผ ํ๋ ๊ฒ์ด๋ค.
๐จ๐ปcode )
def solution(new_id):
# 1๋จ๊ณ
new_id = new_id.lower()
# 2,3๋จ๊ณ
id_list = []
for i in new_id:
if i.isalnum() or i in ['-', '_', '.']:
if id_list:
if i == '.' and id_list[-1] == '.':
continue
id_list.append(i)
# 4๋จ๊ณ
if id_list:
if id_list[0] == '.':
id_list = id_list[1:]
if id_list:
if id_list[-1] == '.':
id_list.pop()
# 5๋จ๊ณ
if not id_list:
id_list.append('a')
# 6๋จ๊ณ
if len(id_list) >= 16:
id_list = id_list[:15]
if id_list[-1] == '.':
id_list.pop()
# 7๋จ๊ณ
if len(id_list) <= 2:
last = id_list[-1]
while len(id_list) != 3:
id_list.append(last)
return ''.join(id_list)
๐description )
๋ฌธ์ ์ค๋ช
์นด์นด์ค์ ์
์ฌํ ์ ์
๊ฐ๋ฐ์ ๋ค์ค๋ "์นด์นด์ค๊ณ์ ๊ฐ๋ฐํ"์ ๋ฐฐ์น๋์ด, ์นด์นด์ค ์๋น์ค์ ๊ฐ์
ํ๋ ์ ์ ๋ค์ ์์ด๋๋ฅผ ์์ฑํ๋ ์
๋ฌด๋ฅผ ๋ด๋นํ๊ฒ ๋์์ต๋๋ค. "๋ค์ค"์๊ฒ ์ฃผ์ด์ง ์ฒซ ์
๋ฌด๋ ์๋ก ๊ฐ์
ํ๋ ์ ์ ๋ค์ด ์นด์นด์ค ์์ด๋ ๊ท์น์ ๋ง์ง ์๋ ์์ด๋๋ฅผ ์
๋ ฅํ์ ๋, ์
๋ ฅ๋ ์์ด๋์ ์ ์ฌํ๋ฉด์ ๊ท์น์ ๋ง๋ ์์ด๋๋ฅผ ์ถ์ฒํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋ ๊ฒ์
๋๋ค.
๋ค์์ ์นด์นด์ค ์์ด๋์ ๊ท์น์
๋๋ค.
- ์์ด๋์ ๊ธธ์ด๋ 3์ ์ด์ 15์ ์ดํ์ฌ์ผ ํฉ๋๋ค.
- ์์ด๋๋ ์ํ๋ฒณ ์๋ฌธ์, ์ซ์, ๋นผ๊ธฐ(-), ๋ฐ์ค(_), ๋ง์นจํ(.) ๋ฌธ์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋จ, ๋ง์นจํ(.)๋ ์ฒ์๊ณผ ๋์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๋ํ ์ฐ์์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
"๋ค์ค"๋ ๋ค์๊ณผ ๊ฐ์ด 7๋จ๊ณ์ ์์ฐจ์ ์ธ ์ฒ๋ฆฌ ๊ณผ์ ์ ํตํด ์ ๊ท ์ ์ ๊ฐ ์
๋ ฅํ ์์ด๋๊ฐ ์นด์นด์ค ์์ด๋ ๊ท์น์ ๋ง๋ ์ง ๊ฒ์ฌํ๊ณ ๊ท์น์ ๋ง์ง ์์ ๊ฒฝ์ฐ ๊ท์น์ ๋ง๋ ์๋ก์ด ์์ด๋๋ฅผ ์ถ์ฒํด ์ฃผ๋ ค๊ณ ํฉ๋๋ค.
์ ๊ท ์ ์ ๊ฐ ์
๋ ฅํ ์์ด๋๊ฐ new_id ๋ผ๊ณ ํ๋ค๋ฉด,
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์ด ๋ ๋๊น์ง ๋ฐ๋ณตํด์ ๋์ ๋ถ์ ๋๋ค.
์๋ฅผ ๋ค์ด, new_id ๊ฐ์ด "...!@BaT#*..y.abcdefghijklm" ๋ผ๋ฉด, ์ 7๋จ๊ณ๋ฅผ ๊ฑฐ์น๊ณ ๋๋ฉด new_id๋ ์๋์ ๊ฐ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค.
1๋จ๊ณ ๋๋ฌธ์ 'B'์ 'T'๊ฐ ์๋ฌธ์ 'b'์ 't'๋ก ๋ฐ๋์์ต๋๋ค.
"...!@BaT#*..y.abcdefghijklm" → "...!@bat#*..y.abcdefghijklm"
2๋จ๊ณ '!', '@', '#', '*' ๋ฌธ์๊ฐ ์ ๊ฑฐ๋์์ต๋๋ค.
"...!@bat#*..y.abcdefghijklm" → "...bat..y.abcdefghijklm"
3๋จ๊ณ '...'์ '..' ๊ฐ '.'๋ก ๋ฐ๋์์ต๋๋ค.
"...bat..y.abcdefghijklm" → ".bat.y.abcdefghijklm"
4๋จ๊ณ ์์ด๋์ ์ฒ์์ ์์นํ '.'๊ฐ ์ ๊ฑฐ๋์์ต๋๋ค.
".bat.y.abcdefghijklm" → "bat.y.abcdefghijklm"
5๋จ๊ณ ์์ด๋๊ฐ ๋น ๋ฌธ์์ด์ด ์๋๋ฏ๋ก ๋ณํ๊ฐ ์์ต๋๋ค.
"bat.y.abcdefghijklm" → "bat.y.abcdefghijklm"
6๋จ๊ณ ์์ด๋์ ๊ธธ์ด๊ฐ 16์ ์ด์์ด๋ฏ๋ก, ์ฒ์ 15์๋ฅผ ์ ์ธํ ๋๋จธ์ง ๋ฌธ์๋ค์ด ์ ๊ฑฐ๋์์ต๋๋ค.
"bat.y.abcdefghijklm" → "bat.y.abcdefghi"
7๋จ๊ณ ์์ด๋์ ๊ธธ์ด๊ฐ 2์ ์ดํ๊ฐ ์๋๋ฏ๋ก ๋ณํ๊ฐ ์์ต๋๋ค.
"bat.y.abcdefghi" → "bat.y.abcdefghi"
๋ฐ๋ผ์ ์ ๊ท ์ ์ ๊ฐ ์ ๋ ฅํ new_id๊ฐ "...!@BaT#*..y.abcdefghijklm"์ผ ๋, ๋ค์ค์ ํ๋ก๊ทธ๋จ์ด ์ถ์ฒํ๋ ์๋ก์ด ์์ด๋๋ "bat.y.abcdefghi" ์ ๋๋ค.
[๋ฌธ์ ]
์ ๊ท ์ ์ ๊ฐ ์ ๋ ฅํ ์์ด๋๋ฅผ ๋ํ๋ด๋ new_id๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, "๋ค์ค"๊ฐ ์ค๊ณํ 7๋จ๊ณ์ ์ฒ๋ฆฌ ๊ณผ์ ์ ๊ฑฐ์น ํ์ ์ถ์ฒ ์์ด๋๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
[์ ํ์ฌํญ]
new_id๋ ๊ธธ์ด 1 ์ด์ 1,000 ์ดํ์ธ ๋ฌธ์์ด์
๋๋ค.
new_id๋ ์ํ๋ฒณ ๋๋ฌธ์, ์ํ๋ฒณ ์๋ฌธ์, ์ซ์, ํน์๋ฌธ์๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
new_id์ ๋ํ๋ ์ ์๋ ํน์๋ฌธ์๋ -_.~!@#$%^&*()=+[{]}:?,<>/ ๋ก ํ์ ๋ฉ๋๋ค.
[์ ์ถ๋ ฅ ์]
nonew_idresult
์1 | "...!@BaT#*..y.abcdefghijklm" | "bat.y.abcdefghi" |
์2 | "z-+.^." | "z--" |
์3 | "=.=" | "aaa" |
์4 | "123_.def" | "123_.def" |
์5 | "abcdefghijklmn.p" | "abcdefghijklmn" |