PROGRAMMERS/KAKAO
PROGRAMMERES Level 1 2020 카카오 인턴십 키패드 누르기 JAVA
c0mmedes
2022. 7. 21. 17:41
import java.util.*;
class Solution {
public String solution(int[] numbers, String hand) {
String answer = "";
//손가락의 위치 저장(*, # = 10, 12)
int flag_L = 10;
int flag_R = 12;
for(int num : numbers){
// 왼쪽손가락번호
if(num == 1 || num == 4 || num == 7){
answer += "L";
flag_L = num;
}
// 오른쪽손가락번호
else if(num == 3 || num == 6 || num == 9){
answer += "R";
flag_R = num;
}
// 가운데
else {
// 0은 11로 계산
if(num==0) num = 11;
int Rd = Math.abs(num - flag_R)/3 + Math.abs(num - flag_R)%3; // 오른손가락과의 거리
int Ld = Math.abs(num - flag_L)/3 + Math.abs(num - flag_L)%3; // 왼손가락과의 거리
// 왼손가락과의 거리가 더 클 경우
if(Rd < Ld) {
answer += "R";
flag_R = num;
// 오른손가락과의 거리가 더 클 경우
} else if(Rd > Ld) {
answer += "L";
flag_L = num;
// 양쪽과의 거리가 같을 경우
} else {
if(hand.equals("right")) {
answer += "R";
flag_R = num;
} else {
answer += "L";
flag_L = num;
}
}
}
}
return answer;
}
}