🤔생각해보기
조건에 충족하도록 작성
🐱👤모범답안
def solution(numbers, hand):
answer = ''
key_dict = {
1:(0,0), 2:(0,1), 3:(0,2),
4:(1,0), 5:(1,1), 6:(1,2),
7:(2,0), 8:(2,1), 9:(2,2),
'*':(3,0), 0:(3,1), '#':(3,2)
}
left = [1,4,7]
right = [3,6,9]
lhand = '*' # 인덱스로 활용
rhand = '#' # 인덱스로 활용
for i in numbers:
if i in left:
answer += 'L'
lhand = i
elif i in right:
answer += 'R'
rhand = i
else:
curPos = key_dict[i] # 눌러야할 번호 위치
lPos = key_dict[lhand] # 왼손 위치
rPos = key_dict[rhand] # 오른손 위치
ldist = abs(curPos[0]-lPos[0]) + abs(curPos[1]-lPos[1]) # 왼손거리
rdist = abs(curPos[0]-rPos[0]) + abs(curPos[1]-rPos[1]) # 오른손거리
# 오른쪽이 더 크다는건, 왼손이 더 가깝다
if ldist < rdist:
answer += 'L'
lhand = i
elif ldist > rdist:
answer += 'R'
rhand = i
# 거리가 같은경우
else:
if hand == 'left':
answer += 'L'
lhand = i
else:
answer += 'R'
rhand = i
return answer
abs() 예제
정수 : abs(-1) >>1
실수 : abs(-1.75) >>1.75
복소수 : abs(1+1j) >>1.4142135623730951
ref.
https://technote.kr/239 [TechNote.kr]