😎코딩테스트 연습>2020 카카오 인턴십>키패드 누르기
- 키패드를 배열에 넣기
- (1, 4, 7)은 left, (3, 6, 9)는 right
- 중간 키패드는 인덱스의 위치를 비교해서 더 가까운 손을 체크
import numpy as np
def solution(numbers, hand):
answer = ''
left = 10
right = 11
key = np.array([[1,2,3],[4,5,6],[7,8,9],[10,0,11]]) # 10은 *, 11은 #
for n in numbers:
if n == 1 or n == 4 or n == 7:
answer += 'L'
left = n
elif n == 3 or n== 6 or n == 9:
answer += 'R'
right = n
else:
l = np.where(key == left)
r = np.where(key == right)
k = np.where(key == n)
lkey = abs(l[0]-k[0]) + abs(l[1]-k[1])
rkey = abs(r[0]-k[0]) + abs(r[1]-k[1])
if lkey < rkey:
answer += 'L'
left = n
elif lkey == rkey:
if hand == 'left':
answer += 'L'
left = n
else:
answer += 'R'
right = n
else:
answer += 'R'
right = n
return answer