[Programmers] 키패드 누르기 - 2020 카카오 인턴십
// 키패드 누르기 - 2020 카카오 인턴십
public class KeyPad {
public String solution(int[] numbers, String hand) {
StringBuilder answer = new StringBuilder("");
int[][] xy = { { 4, 2 }, { 1, 1 }, { 1, 2 }, { 1, 3 }, { 2, 1 }, { 2, 2 }, { 2, 3 }, { 3, 1 }, { 3, 2 }, { 3, 3 } };
int left[] = { 4, 1 }, right[] = { 4, 3 }, next[];
for (int number : numbers) {
next = xy[number];
if (number == 1 || number == 4 || number == 7) {
answer.append("L");
left = next;
} else if (number == 3 || number == 6 || number == 9) {
answer.append("R");
right = next;
} else {
if (distance(left, next) > distance(right, next)) {
answer.append("R");
right = next;
} else if (distance(left, next) < distance(right, next)) {
answer.append("L");
left = next;
} else {
if (hand.equals("right")) {
answer.append("R");
right = next;
} else {
answer.append("L");
left = next;
}
}
}
}
return answer.toString();
}
private int distance(int[] xy1, int[] xy2) {
return Math.abs(xy1[0] - xy2[0]) + Math.abs(xy1[1] - xy2[1]);
}
}
Author And Source
이 문제에 관하여([Programmers] 키패드 누르기 - 2020 카카오 인턴십), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kmdngmn/Programmers-i4d2xnva저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)