abs() 사용 풀이
def solution(numbers, hand):
answer = ''
location = [[3, 1], [0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]
left, right = [3, 0], [3, 2]
for i in numbers:
if i % 3 == 1:
answer += 'L'
left = location[i]
elif i % 3 == 0 and i != 0:
answer += 'R'
right = location[i]
else:
l = abs(location[i][0] - left[0]) + abs(location[i][1] - left[1])
r = abs(location[i][0] - right[0]) + abs(location[i][1] - right[1])
if l < r:
answer += 'L'
left = location[i]
elif l > r:
answer += 'R'
right = location[i]
else:
if hand == 'right':
answer += ‘R’
right = location[i]
else:
answer += ‘L’
left = location[i]
return answer
느낀점
- abs() 함수가 절댓값을 반환한다는 것을 알았다.
- 위치 자체를 배열로 만들어서 각 번호를 인덱스 값으로 둔다는 아이디어에 놀랐다. 이런 생각을 잘 할 수 있었으면.