스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다.

이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다.
맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다.
| numbers | hand | result |
|---|---|---|
| [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] | "right" | "LRLLLRLLRRL" |
| [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] | "left" | "LRLLRRLLLRR" |
| [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] | "right" | "LLRLLRLLRL" |
import java.util.*;
class Solution {
public String solution(int[] numbers, String hand) {
StringBuilder sb = new StringBuilder();
int left = 10;
int right = 12;
for(int i=0; i<numbers.length; i++){
if(numbers[i]==1 ||numbers[i]==4 || numbers[i]==7) {
sb.append('L');
left = numbers[i];
}else if(numbers[i]==3 ||numbers[i]==6 || numbers[i]==9){
sb.append('R');
right = numbers[i];
}else{
if(numbers[i] == 0) numbers[i] = 11;
int ldist = Math.abs(numbers[i] - left) / 3 + Math.abs(numbers[i] - left) % 3;
int rdist = Math.abs(right - numbers[i]) / 3 + Math.abs(right - numbers[i]) % 3;
if(ldist == rdist){
if(hand.equals("left")){
sb.append('L');
left = numbers[i];
}else{
sb.append('R');
right = numbers[i];
}
}
else if(ldist < rdist){
sb.append('L');
left = numbers[i];
}else if(ldist > rdist){
sb.append('R');
right = numbers[i];
}
}
}
return sb.toString();
}
}