일반 배열로 하려했는데 그렇게 하면 인덱스 처리가 너무 복잡해서 딕셔너리로 하니 편해졌음.
def solution(numbers, hand):
answer = ''
LEFT = {1: [0, 0], 4:[1, 0], 7:[2, 0], '*':[3, 0]}
MIDDLE = {2:[0, 1], 5:[1, 1], 8:[2, 1], 0:[3, 1]}
RIGHT = {3:[0, 2], 6:[1, 2], 9:[2, 2], '#':[3, 2]}
left_thumb = [3, 0]
right_thumb = [3, 2]
print(type(numbers[0]))
for n in numbers:
# 왼쪽꺼면
if n in LEFT:
answer += 'L'
left_thumb = LEFT[n]
# 오른쪽꺼면
elif n in RIGHT:
answer += 'R'
right_thumb = RIGHT[n]
# 중간 줄이면
else:
x = MIDDLE[n][0]
y = MIDDLE[n][1]
# 왼손 엄지가 더 가까우면
if abs(x - left_thumb[0]) + abs(y - left_thumb[1]) < \
abs(x - right_thumb[0]) + abs(y - right_thumb[1]):
left_thumb = [x, y]
answer += 'L'
# 오른손 엄지가 더 가까우면
elif abs(x - left_thumb[0]) + abs(y - left_thumb[1]) > \
abs(x - right_thumb[0]) + abs(y - right_thumb[1]):
right_thumb = [x, y]
answer += 'R'
# 둘이 같으면
else:
# 왼손잡이
if hand == 'left':
left_thumb = [x, y]
answer += 'L'
# 오른손잡이
else:
right_thumb = [x, y]
answer += 'R'
return answer