가운데 키패드를 누를 때의 알고리즘을 짜는 게 관건!
번호를 누를 때마다 그 번호로 리셋하기
왼쪽, 오른쪽, 가운데 키패드의 조건을 따로 만들고
가운데 키패드를 누를 때 고려해야할 조건 1.distance 2.hand
def solution(numbers, hand):
answer = ''
last_l = 10
last_r = 12
pad = [[1,4,7],[2,5,8],[3,6,9]]
for num in numbers:
if num in pad[0]: # Left
answer += 'L'
last_l = num
elif num in pad[2]: # Right
answer += 'R'
last_r = num
else: # Middle'
num = 11 if num == 0 else num
abs_l = abs(num-last_l) # 거리 계산하기 위해
abs_r = abs(num-last_r)
if sum(divmod(abs_l, 3)) > sum(divmod(abs_r, 3)):
answer += 'R'
last_r = num
elif sum(divmod(abs_l, 3)) < sum(divmod(abs_r, 3)):
answer += 'L'
last_l = num
else:
if hand == 'left':
answer += 'L'
last_l = num
else:
answer += 'R'
last_r = num
return answer
answer = '' last_l = 10 last_r = 12 pad = [[1,4,7],[2,5,8],[3,6,9]]
for num in numbers:
if num in pad[0]:
answer += 'L'
last_l = num
elif num in pad[2]:
answer += 'R'
last_r = num
else:
num = 11 if num == 0 else num
abs_l = abs(num-last_l) # 거리 계산하기 위해
abs_r = abs(num-last_r)
if sum(divmod(abs_l, 3)) > sum(divmod(abs_r, 3)):
answer += 'R'
last_r = num
elif sum(divmod(abs_l, 3)) < sum(divmod(abs_r, 3)):
answer += 'L'
last_l = num
else:
if hand == 'left':
answer += 'L'
last_l = numelse:
answer += 'R'
last_r = numreturn answer
오래 걸렸다 🥸 헥헥