https://school.programmers.co.kr/learn/courses/30/lessons/67256
def solution(numbers, hand):
answer = ''
# 키패드 위치를 좌표로 / 0을 기준점으로
kp = {
1 : (-1, 3), 2 : (0, 3), 3 : (1, 3) ,
4 : (-1, 2), 5 : (0, 2), 6 : (1, 2) ,
7 : (-1, 1), 8 : (0, 1), 9 : (1, 1) ,
'*' : (-1, 0), 0 : (0, 0), '#' : (1, 0)
}
# 각 손의 좌표 초기화
l = kp['*']
r = kp['#']
for n in numbers :
if n in [1, 4, 7] : # 왼손으로 눌러야 하는 키패드들
answer += 'L'
l = kp[n]
elif n in [3, 6, 9] : # 오른손으로 눌러야 하는 키패드들
answer += 'R'
r = kp[n]
else : # 2, 5, 8, 0 중 하나일 때
loc = kp[n] # 키패드 위치
l_dist = abs(l[0] - loc[0]) + abs(l[1] - loc[1]) # 왼손에서 눌러야할 키패드 까지의 거리
r_dist = abs(r[0] - loc[0]) + abs(r[1] - loc[1]) # 오른손에서 눌러야할 키패드 까지의 거리
if l_dist < r_dist : # 왼손이 가까우면
answer += 'L'
l = loc
elif r_dist < l_dist : # 오른손이 가까우면
answer += 'R'
r = loc
else : # 왼손 오른손 둘 다 거리가 같으면
if hand == 'left' : # 왼손잡이라면
answer += 'L'
l = loc
else : # 오른손잡이라면
answer += 'R'
r = loc
return answer
키패드를 좌표화 하는 것이 키포인트인듯 하다!