์ฝ๋ฉ ํ ์คํธ ์ฐ์ต - 2021 KAKAO BLIND RECRUITMENT
<์ ๊ท ์์ด๋ ์ถ์ฒ>
๋ฌธ์ ์ค๋ช
์นด์นด์ค์ ์ ์ฌํ ์ ์ ๊ฐ๋ฐ์ ๋ค์ค๋ ์นด์นด์ค๊ณ์ ๊ฐ๋ฐํ์ ๋ฐฐ์น๋์ด, ์นด์นด์ค ์๋น์ค์ ๊ฐ์ ํ๋ ์ ์ ๋ค์ ์์ด๋๋ฅผ ์์ฑํ๋ ์ ๋ฌด๋ฅผ ๋ด๋นํ๊ฒ ๋์์ต๋๋ค. ๋ค์ค์๊ฒ ์ฃผ์ด์ง ์ฒซ ์ ๋ฌด๋ ์๋ก ๊ฐ์ ํ๋ ์ ์ ๋ค์ด ์นด์นด์ค ์์ด๋ ๊ท์น์ ๋ง์ง ์๋ ์์ด๋๋ฅผ ์ ๋ ฅํ์ ๋, ์ ๋ ฅ๋ ์์ด๋์ ์ ์ฌํ๋ฉด์ ๊ท์น์ ๋ง๋ ์์ด๋๋ฅผ ์ถ์ฒํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋ ๊ฒ์ ๋๋ค.
๋ค์์ ์นด์นด์ค ์์ด๋์ ๊ท์น์ ๋๋ค.
- ์์ด๋์ ๊ธธ์ด๋ 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์ ๋ํ๋ ์ ์๋ ํน์๋ฌธ์๋ -_.~!@#$%^&*()=+[{]}:?,<>/ ๋ก ํ์ ๋ฉ๋๋ค.
๋ฌธ์ ํ์ด
- my solution
def solution(new_id):
answer = ''
new_id=new_id.lower() #1๋จ๊ณ
new_id=list(new_id) #list๋ก ๋ณํ
i=0
while(i<len(new_id)): #2๋จ๊ณ
x=new_id[i]
if(x.isalpha() or x.isdigit() or x=='-' or x=='_' or x=='.'):
i+=1
pass
else:
del new_id[i]
i=0
if(len(new_id)!=0):
while (i<len(new_id)-1): #3๋จ๊ณ
if(new_id[i]=="." and new_id[i]==new_id[i+1]):
del new_id[i+1]
else:
i+=1
#4๋จ๊ณ
if(len(new_id)!=0):
if(new_id[0]=='.'):
del new_id[0]
if(len(new_id)!=0):
if(new_id[-1]=='.'):
del new_id[-1]
#5๋จ๊ณ
if(len(new_id)==0):
new_id.append("a")
#6๋จ๊ณ
if(len(new_id)>=16):
new_id=new_id[:15]
if(new_id[-1]=='.'):
del new_id[-1]
#7๋จ๊ณ
while(len(new_id)<=2):
new_id.append(new_id[-1])
answer=''.join(new_id)
return answer
๋ฌธ์ ๊ธธ์ด๋ ๊ธธ์ง๋ง ์์ด๋ ์ถ์ฒ ๋จ๊ณ์ ๋ง์ถ์ด ์ฝ๋๋ฅผ ๊ตฌํํ๋ฉด ํด๊ฒฐํ ์ ์์๋ค.
1๋จ๊ณ lower()๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋๋ฌธ์๋ฅผ ์๋ฌธ์๋ก ์นํ ํ ์ฝ๊ฒ ๊ตฌํํ๊ธฐ ์ํด list๋ก ๋ฐ๊ฟ
2๋จ๊ณ ๋ฌธ์์ด์ ์ํํ๋ฉฐ ์ํ๋ฒณ ์๋ฌธ์, ์ซ์, ๋นผ๊ธฐ(-), ๋ฐ์ค(_), ๋ง์นจํ(.)๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ ๊ฑฐ
3๋จ๊ณ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 0์ด ์๋ ๋ ๋ง์นจํ๊ฐ 2๋ฒ ์ด์ ์ฐ์๋ ๋ถ๋ถ์ ์ ๊ฑฐํ์ฌ ํ๋๋ง ๋จ๊ฒจ๋
4๋จ๊ณ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 0์ด ์๋ ๋ ์ฒ์์ด๋ ๋์ ๋ง์นจํ๊ฐ ์์นํ๋ค๋ฉด ์ ๊ฑฐ
5๋จ๊ณ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 0์ผ ๋ a ๋์
6๋จ๊ณ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 16์ ์ด์์ด๋ฉด 15์๊น์ง ๋์ ํ ๋ง์ง๋ง์ ๋ง์นจํ๊ฐ ์์นํ๋ฉด ์ ๊ฑฐ
7๋จ๊ณ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 2์ ์ดํ์ผ ๋, ๋ง์ง๋ง ๋ฌธ์๋ฅผ ๋ฌธ์์ด ๊ธธ์ด๊ฐ 3์ด ๋ ๋๊น์ง ์ถ๊ฐ
์ฒ์์ ์ฝ๋๋ฅผ ๊ตฌํํ์์ ๋ ๋ชจ๋ ํ ์คํธ ์ผ์ด์ค๋ฅผ ํต๊ณผํ์ง ๋ชปํ์๋ค.
3๋จ๊ณ, 4๋จ๊ณ์์ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 0์ผ ๋์ ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํด์ฃผ์ง ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด์๋ค.
๊ทธ๋์ ์กฐ๊ฑด๋ฌธ์ ์ถ๊ฐํ์ฌ ๋ชจ๋ ํ ์คํธ ์ผ์ด์ค๋ฅผ ํต๊ณผํ ์ ์์๋ค.
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://programmers.co.kr/learn/challenges
'๐Algorithm > ๐ฅprogrammers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[programmers] ์ ์ ์ผ๊ฐํ (0) | 2021.08.23 |
---|---|
[programmers] ํ๊ฒ ๋๋ฒ (0) | 2021.04.04 |
[programmers] [1์ฐจ] ๋ด์ค ํด๋ฌ์คํฐ๋ง - 2018 KAKAO BLIND RECRUITMENT (0) | 2021.01.19 |
[programmers] [1์ฐจ] ์บ์ - 2018 KAKAO BLIND RECRUITMENT (0) | 2021.01.19 |
[programmers] ์์ด ๋๋ง์๊ธฐ - Summer/Winter Coding(~2018) (0) | 2021.01.12 |