나의 코드)
def solution(numbers, hand):
# 1, 2, 3, 4, 5, 6, 7, 8, 9, 0
phone =[[0,0],[0,1],[0,2],[1,0],[1,1],[1,2],[2,0],[2,1],[2,2],[3,1]]
result = []
# 초기 좌 우손가락
lx,ly = 3,0
rx,ry = 3,2
left_arr =[1,4,7]
right_arr = [3,6,9]
for number in numbers:
# 1,4,7 3,6,9 해당 손가락
if number in left_arr:
result.append("L")
lx,ly = phone[number-1][0],phone[number-1][1]
continue
elif number in right_arr:
result.append("R")
rx,ry = phone[number-1][0],phone[number-1][1]
continue
# 거리재기
else:
r_ds = abs((rx-phone[number-1][0]))+abs((ry-phone[number-1][1]))
l_ds = abs((lx-phone[number-1][0]))+abs((ly-phone[number-1][1]))
if l_ds == r_ds:
if hand == "right":
rx,ry = phone[number-1][0],phone[number-1][1]
result.append("R")
else:
lx,ly = phone[number-1][0],phone[number-1][1]
result.append("L")
if l_ds > r_ds:
rx,ry = phone[number-1][0],phone[number-1][1]
result.append("R")
if l_ds < r_ds:
lx,ly = phone[number-1][0],phone[number-1][1]
result.append("L")
answer = "".join(result)
return answer
나의 답은 이렇다. 일단 문제는 맞았다. 시간이 살짝 걸린이유는 바보처럼 phone의 인덱스를 1부터 시작하는 것으로 생각을 해놓고 phone을 인덱싱할때는 number -1이 아닌 number로 생각하고 문제를 풀었다.
...살짝 실력상승한것 같기도..