https://school.programmers.co.kr/learn/courses/30/lessons/67256
def solution(numbers, hand):
answer=''
leftKeypad={1:1,4:2,7:3} #왼손 키패드 좌표
midKeypad={2:1,5:2,8:3,0:4} #가운데 키패드 좌표
rightKeypad={3:1,6:2,9:3} #오른손 키패드 좌표
leftX=1 #왼손 X 시작점
leftY=4 #왼손 Y 시작점
rightX=3 #오른손 X 시작점
rightY=4 #오른손 Y 시작점
positionX=0 #가운데 포인트 좌표 X 초기값
positionY=0 #가운데 포인트 좌표 Y 초기값
handS=hand[0].upper() #어느 손 잡이인지 확인
for i in numbers:
if i in leftKeypad.keys(): #왼손 키패드를 누르는 좌표
leftX=1
leftY=leftKeypad[i]
answer+='L'
elif i in rightKeypad.keys(): #오른손 키패드를 누르는 좌표
rightX=3
rightY=rightKeypad[i]
answer+='R'
else:
positionX=2 #가운데 키패드 좌표 지정
positionY=midKeypad[i]
leftD=abs(leftX-positionX)+abs(leftY-positionY) #왼손과의 거리
rightD=abs(rightX-positionX)+abs(rightY-positionY) #오른손 과의 거리
if leftD<rightD:
leftX=2
leftY=midKeypad[i]
answer+='L'
elif leftD>rightD:
rightX=2
rightY=midKeypad[i]
answer+='R'
else:
if handS=='R':
rightX=2
rightY=midKeypad[i]
answer+='R'
else:
leftX=2
leftY=midKeypad[i]
answer+='L'
return answer
나의 풀이법은 키워드는 키패드 각각의 자리를 좌표로 표시하여 거리를 구했다.