์ถ์ฒ | 2021 KAKAO BLIND RECRUITMENT
programmers.co.kr/learn/courses/30/lessons/72410
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ ๊ท ์์ด๋ ์ถ์ฒ
์นด์นด์ค์ ์ ์ฌํ ์ ์ ๊ฐ๋ฐ์ ๋ค์ค๋ "์นด์นด์ค๊ณ์ ๊ฐ๋ฐํ"์ ๋ฐฐ์น๋์ด, ์นด์นด์ค ์๋น์ค์ ๊ฐ์ ํ๋ ์ ์ ๋ค์ ์์ด๋๋ฅผ ์์ฑํ๋ ์ ๋ฌด๋ฅผ ๋ด๋นํ๊ฒ ๋์์ต๋๋ค. "๋ค์ค"์๊ฒ ์ฃผ์ด์ง ์ฒซ ์ ๋ฌด๋ ์๋ก
programmers.co.kr
๋ฌธ์ ์ค๋ช
์นด์นด์ค์ ์
์ฌํ ์ ์
๊ฐ๋ฐ์ ๋ค์ค๋ "์นด์นด์ค๊ณ์ ๊ฐ๋ฐํ"์ ๋ฐฐ์น๋์ด, ์นด์นด์ค ์๋น์ค์ ๊ฐ์
ํ๋ ์ ์ ๋ค์ ์์ด๋๋ฅผ ์์ฑํ๋ ์
๋ฌด๋ฅผ ๋ด๋นํ๊ฒ ๋์์ต๋๋ค. "๋ค์ค"์๊ฒ ์ฃผ์ด์ง ์ฒซ ์
๋ฌด๋ ์๋ก ๊ฐ์
ํ๋ ์ ์ ๋ค์ด ์นด์นด์ค ์์ด๋ ๊ท์น์ ๋ง์ง ์๋ ์์ด๋๋ฅผ ์
๋ ฅํ์ ๋, ์
๋ ฅ๋ ์์ด๋์ ์ ์ฌํ๋ฉด์ ๊ท์น์ ๋ง๋ ์์ด๋๋ฅผ ์ถ์ฒํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋ ๊ฒ์
๋๋ค.
๋ค์์ ์นด์นด์ค ์์ด๋์ ๊ท์น์
๋๋ค.
- ์์ด๋์ ๊ธธ์ด๋ 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์ด ๋ ๋๊น์ง ๋ฐ๋ณตํด์ ๋์ ๋ถ์ ๋๋ค.
(์ดํ ์๋ต)
๋ฌธ์ ํ์ด
โถ ์ฃผ์ด์ง ์กฐ๊ฑด๋๋ก ๊ตฌํ๋ง ์ ๋๋ก ํ๋ค๋ฉด ๋ง์ถ ์ ์๋ ๋ฌธ์ ์ด๋ค.
โถ ์ด ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ๋ฌธ์์ด์ ์ฒ๋ฆฌํ ๋ replace() ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ํธ๋ฆฌํ๋ค๋ ๊ฒ์ ๋ฐฐ์ ๋ค.
def solution(new_id):
# 1๋จ๊ณ : ๋๋ฌธ์๋ฅผ ์๋ฌธ์๋ก ์นํ
new_id=new_id.lower()
# 2๋จ๊ณ : ์ํ๋ฒณ, ์ซ์, ๋นผ๊ธฐ, ๋ฐ์ค, ๋ง์นจํ ๋นผ๊ณ ๋ชจ๋ ๋ฌธ์ ์ ๊ฑฐ
for cha in new_id:
if cha.isalpha() or cha=='-' or cha=='_' or cha=='.' or cha.isdigit():
continue
else:
new_id=new_id.replace(cha,'') # ๋ฌธ์ ์ ๊ฑฐ
# 3๋จ๊ณ : ๋ง์นจํ๋ ํ๊ฐ๋ก ์ค์ด๊ธฐ
while '..' in new_id:
new_id=new_id.replace('..','.')
# 4๋จ๊ณ : ์ฒ์์ด๋ ๋์ ๋ง์นจํ๊ฐ ์๋ค๋ฉด ์ ๊ฑฐํ๊ธฐ
if new_id[0]=='.' and len(new_id)>1:
new_id=new_id[1:]
if new_id[-1]=='.':
new_id=new_id[:-1]
# 5๋จ๊ณ : ๋น ๋ฌธ์์ด์ด๋ผ๋ฉด 'a' ๋์
if len(new_id)==0:
new_id+='a'
# 6๋จ๊ณ : ๊ธธ์ด ๋ง์ถ๊ธฐ
if len(new_id)>=16:
new_id=new_id[:15]
if new_id[-1]=='.': # ๋ ๋ถ๋ถ์ด ๋ง์นจํ๋ฉด ๋ฌธ์ ์ ๊ฑฐ
new_id=new_id[:-1]
# 7๋จ๊ณ : ๊ธธ์ด๋ฅผ ์ต์ 3์ผ๋ก ๋ง์ถฐ์ฃผ๊ธฐ
if len(new_id) <= 3:
new_id+=new_id[-1]*(3-len(new_id))
return new_id
'์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Myslq/Oracle] SQL ์ฐ์ตํ ์ ์๋ ์ฌ์ดํธ ์ถ์ฒ (0) | 2021.11.16 |
---|---|
[KAKAO|์นด์นด์ค ๊ธฐ์ถ๋ฌธ์ ] ๋ฉ๋ด ๋ฆฌ๋ด์ผ (0) | 2021.04.21 |
์ฝ๋ฉํ ์คํธ ๊ด๋ จ ๋ด์ฉ์ ๋ฆฌ (4) (0) | 2021.03.15 |
์ฝ๋ฉํ ์คํธ ๊ด๋ จ ๋ด์ฉ์ ๋ฆฌ (3) (0) | 2021.03.11 |
์ฝ๋ฉํ ์คํธ ๊ด๋ จ ๋ด์ฉ์ ๋ฆฌ (2) (0) | 2021.02.20 |