[νλ‘κ·Έλλ¨Έμ€/python] 2020 μΉ΄μΉ΄μ€ μΈν΄μ : ν€ν¨λ λλ₯΄κΈ°
λ¬Έμ μ€λͺ
μ€λ§νΈν° μ ν ν€ν¨λμ κ° μΉΈμ λ€μκ³Ό κ°μ΄ μ«μλ€μ΄ μ ν μμ΅λλ€.
μ΄ μ ν ν€ν¨λμμ μΌμκ³Ό μ€λ₯Έμμ μμ§μκ°λ½λ§μ μ΄μ©ν΄μ μ«μλ§μ μ
λ ₯νλ €κ³ ν©λλ€.
맨 μ²μ μΌμ μμ§μκ°λ½μ * ν€ν¨λμ μ€λ₯Έμ μμ§μκ°λ½μ # ν€ν¨λ μμΉμμ μμνλ©°, μμ§μκ°λ½μ μ¬μ©νλ κ·μΉμ λ€μκ³Ό κ°μ΅λλ€.
- μμ§μκ°λ½μ μνμ’μ° 4κ°μ§ λ°©ν₯μΌλ‘λ§ μ΄λν μ μμΌλ©° ν€ν¨λ μ΄λ ν μΉΈμ κ±°λ¦¬λ‘ 1μ ν΄λΉν©λλ€.
- μΌμͺ½ μ΄μ 3κ°μ μ«μ 1, 4, 7μ μ λ ₯ν λλ μΌμ μμ§μκ°λ½μ μ¬μ©ν©λλ€.
- μ€λ₯Έμͺ½ μ΄μ 3κ°μ μ«μ 3, 6, 9λ₯Ό μ λ ₯ν λλ μ€λ₯Έμ μμ§μκ°λ½μ μ¬μ©ν©λλ€.
- κ°μ΄λ° μ΄μ 4κ°μ μ«μ 2, 5, 8, 0μ μ
λ ₯ν λλ λ μμ§μκ°λ½μ νμ¬ ν€ν¨λμ μμΉμμ λ κ°κΉμ΄ μμ§μκ°λ½μ μ¬μ©ν©λλ€.
4-1. λ§μ½ λ μμ§μκ°λ½μ κ±°λ¦¬κ° κ°λ€λ©΄, μ€λ₯Έμμ‘μ΄λ μ€λ₯Έμ μμ§μκ°λ½, μΌμμ‘μ΄λ μΌμ μμ§μκ°λ½μ μ¬μ©ν©λλ€.
μμλλ‘ λλ₯Ό λ²νΈκ° λ΄κΈ΄ λ°°μ΄ numbers, μΌμμ‘μ΄μΈμ§ μ€λ₯Έμμ‘μ΄μΈ μ§λ₯Ό λνλ΄λ λ¬Έμμ΄ handκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, κ° λ²νΈλ₯Ό λλ₯Έ μμ§μκ°λ½μ΄ μΌμμΈ μ§ μ€λ₯ΈμμΈ μ§λ₯Ό λνλ΄λ μ°μλ λ¬Έμμ΄ ννλ‘ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ νμ¬ν
- numbers λ°°μ΄μ ν¬κΈ°λ 1 μ΄μ 1,000 μ΄νμ λλ€.
- numbers λ°°μ΄ μμμ κ°μ 0 μ΄μ 9 μ΄νμΈ μ μμ λλ€.
- handλ "left" λλ "right" μ
λλ€.
- "left"λ μΌμμ‘μ΄, "right"λ μ€λ₯Έμμ‘μ΄λ₯Ό μλ―Έν©λλ€.
- μΌμ μμ§μκ°λ½μ μ¬μ©ν κ²½μ°λ L, μ€λ₯Έμ μμ§μκ°λ½μ μ¬μ©ν κ²½μ°λ Rμ μμλλ‘ μ΄μ΄λΆμ¬ λ¬Έμμ΄ ννλ‘ return ν΄μ£ΌμΈμ.
μ λ΅
def solution(numbers, hand):
answer = ''
inter = {0:0, 1:1, 2:2, 3:1, 4:2, 5:3, 6:2, 7:3, 8:4, 9:3, 10:4}
l_pad = [1, 4, 7]
r_pad = [3, 6, 9]
l = 10
r = 12
for n in numbers:
# 0 -> 11λ‘ λ°κΎΈκΈ°
if n == 0: n=11
if n in l_pad:
answer += 'L'
l = n
elif n in r_pad:
answer += 'R'
r = n
# κ°μ΄λ° μ«μ
else:
l_inter = inter[abs(n-l)]
r_inter = inter[abs(n-r)]
if l_inter == r_inter:
if hand == "left":
answer += 'L'
l = n
else:
answer += 'R'
r = n
elif l_inter < r_inter:
answer += "L"
l = n
else:
answer += "R"
r = n
return answer
*, 0, # μ 10, 11, 12λ‘ λ°κΎΈμ΄ μκ°νλ€.
interμ keyλ κ°μ΄λ° μ«μμ νμ¬ μμΉμ μ°¨μ΄μ΄κ³ valueλ κ°μ΄λ° μ«μμ νμ¬ μμΉμ 거리λ₯Ό λ»νλ€.
numbersμ nμ΄ κ°μ΄λ° μ«μμΌ κ²½μ°
l_interμ r_interμ interλ₯Ό μ΄μ©νμ¬ μ«μμ νμ¬ μμΉμ 거리λ₯Ό μ μ₯νλ€.
μμμ μ«μμμ κ±°λ¦¬κ° κ°μ κ²½μ° μΌμμ‘μ΄μΈμ§ μ€λ₯Έμμ‘μ΄μΈμ§μ λ°λΌ μ νκ³
κ°μ§ μμ κ²½μ° μμμ μ«μμμ 거리 μ€ κ±°λ¦¬κ° λ 짧μ μμ μ ννλ€.