[νλ‘κ·Έλλ¨Έμ€/python] 2018 KAKAO BLIND RECRUITMENT : λ€νΈ κ²μ
λ¬Έμ μ€λͺ
μΉ΄μΉ΄μ€ν‘ κ²μλ³μ νλ°κΈ° μ κ· μλΉμ€λ‘ λ€νΈ κ²μμ μΆμνκΈ°λ‘ νλ€. λ€νΈ κ²μμ λ€νΈνμ λ€νΈλ₯Ό μΈ μ°¨λ‘ λμ Έ κ·Έ μ μμ ν©κ³λ‘ μ€λ ₯μ 겨루λ κ²μμΌλ‘, λͺ¨λκ° κ°λ¨ν μ¦κΈΈ μ μλ€.
κ° μ
μ¬ν 무μ§λ μ½λ© μ€λ ₯μ μΈμ λ°μ κ²μμ ν΅μ¬ λΆλΆμΈ μ μ κ³μ° λ‘μ§μ λ§‘κ² λμλ€. λ€νΈ κ²μμ μ μ κ³μ° λ‘μ§μ μλμ κ°λ€.
- λ€νΈ κ²μμ μ΄ 3λ²μ κΈ°νλ‘ κ΅¬μ±λλ€.
- κ° κΈ°νλ§λ€ μ»μ μ μλ μ μλ 0μ μμ 10μ κΉμ§μ΄λ€.
- μ μμ ν¨κ» Single(S), Double(D), Triple(T) μμμ΄ μ‘΄μ¬νκ³ κ° μμ λΉμ²¨ μ μ μμμ 1μ κ³±, 2μ κ³±, 3μ κ³± (μ μ1 , μ μ2 , μ μ3 )μΌλ‘ κ³μ°λλ€.
- μ΅μ μΌλ‘ μ€νμ(*) , μμ°¨μ(#)μ΄ μ‘΄μ¬νλ©° μ€νμ(*) λΉμ²¨ μ ν΄λΉ μ μμ λ°λ‘ μ μ μ»μ μ μλ₯Ό κ° 2λ°°λ‘ λ§λ λ€. μμ°¨μ(#) λΉμ²¨ μ ν΄λΉ μ μλ λ§μ΄λμ€λλ€.
- μ€νμ(*)μ 첫 λ²μ§Έ κΈ°νμμλ λμ¬ μ μλ€. μ΄ κ²½μ° μ²« λ²μ§Έ μ€νμ(*)μ μ μλ§ 2λ°°κ° λλ€. (μμ 4λ² μ°Έκ³ )
- μ€νμ(*)μ ν¨κ³Όλ λ€λ₯Έ μ€νμ(*)μ ν¨κ³Όμ μ€μ²©λ μ μλ€. μ΄ κ²½μ° μ€μ²©λ μ€νμ(*) μ μλ 4λ°°κ° λλ€. (μμ 4λ² μ°Έκ³ )
- μ€νμ(*)μ ν¨κ³Όλ μμ°¨μ(#)μ ν¨κ³Όμ μ€μ²©λ μ μλ€. μ΄ κ²½μ° μ€μ²©λ μμ°¨μ(#)μ μ μλ -2λ°°κ° λλ€. (μμ 5λ² μ°Έκ³ )
- Single(S), Double(D), Triple(T)μ μ μλ§λ€ νλμ© μ‘΄μ¬νλ€.
- μ€νμ(*), μμ°¨μ(#)μ μ μλ§λ€ λ μ€ νλλ§ μ‘΄μ¬ν μ μμΌλ©°, μ‘΄μ¬νμ§ μμ μλ μλ€.
0~10μ μ μμ λ¬Έμ S, D, T, *, #λ‘ κ΅¬μ±λ λ¬Έμμ΄μ΄ μ λ ₯λ μ μ΄μ μλ₯Ό λ°ννλ ν¨μλ₯Ό μμ±νλΌ.
μ λ ₯ νμ
"μ μ|보λμ€|[μ΅μ
]"μΌλ‘ μ΄λ£¨μ΄μ§ λ¬Έμμ΄ 3μΈνΈ.
μ) 1S2D*3T
- μ μλ 0μμ 10 μ¬μ΄μ μ μμ΄λ€.
- 보λμ€λ S, D, T μ€ νλμ΄λ€.
- μ΅μ μ *μ΄λ # μ€ νλμ΄λ©°, μμ μλ μλ€.
μΆλ ₯ νμ
3λ²μ κΈ°νμμ μ»μ μ μ ν©κ³μ ν΄λΉνλ μ μκ°μ μΆλ ₯νλ€.
μ) 37
μ λ΅
def solution(dartResult):
answer = []
dartResult = dartResult.replace('10', 'k')
squared = { 'S':1, 'D':2, 'T':3 }
for n in dartResult:
if n in squared:
answer[-1] = answer[-1]**squared[n]
elif n == '#':
answer[-1] *= -1
elif n == '*':
answer[-1] *= 2
if len(answer) > 1:
answer [-2] *= 2
elif n == 'k':
answer.append(10)
else:
answer.append(int(n))
return sum(answer)
β μ μκ° 10μΌ λ 10μ kλ‘ replace νμ¬ λ°λ‘ ifλ¬Έμ ν΅ν΄ ν΄κ²°νμλ€.