[programmers] μ κ· μμ΄λ μΆμ² - 2021 KAKAO BLIND RECRUITMENT
μ½λ© ν μ€νΈ μ°μ΅ - 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