def solution(numbers, hand):
answer = ''
left_hand_x, left_hand_y = 3, 0
right_hand_x, right_hand_y = 3, 2
phone_numbers = {
1:[0,0],2:[0,1],3:[0,2],
4:[1,0],5:[1,1],6:[1,2],
7:[2,0],8:[2,1],9:[2,2],
'*':[3,0],0:[3,1],'#':[3,2]
}
for n in numbers:
if n in [1,4,7]:
answer += 'L'
left_hand_x, left_hand_y = phone_numbers[n][0], phone_numbers[n][1]
elif n in [3,6,9]:
answer += 'R'
right_hand_x, right_hand_y = phone_numbers[n][0], phone_numbers[n][1]
else:
x, y = phone_numbers[n][0], phone_numbers[n][1]
right_position = abs(right_hand_x - x) + abs(right_hand_y - y)
left_position = abs(left_hand_x - x) + abs(left_hand_y - y)
if right_position > left_position:
left_hand_x, left_hand_y = phone_numbers[n][0], phone_numbers[n][1]
answer += 'L'
elif right_position < left_position:
right_hand_x, right_hand_y = phone_numbers[n][0], phone_numbers[n][1]
answer += 'R'
else:
if hand == 'right':
answer += 'R'
right_hand_x, right_hand_y = phone_numbers[n][0], phone_numbers[n][1]
else:
answer += 'L'
left_hand_x, left_hand_y = phone_numbers[n][0], phone_numbers[n][1]
return answer
좌표를 계산해서 하려하다가 계산 공식이 안잡혀서 그냥 dictionary로 초기화 해주고 진행했다.