https://school.programmers.co.kr/learn/courses/30/lessons/67256
어우...
자판의 위치를 2차원 배열로 생성하여 키보드의 거리를 구하였다.
class Solution {
static int L=0,R=1;
static int[][] aa = {{3,1},{0,0},{0,1},{0,2},{1,0},{1,1},{1,2},{2,0},{2,1},{2,2},{3,0},{3,2}};
public String solution(int[] numbers, String hand) {
String answer = "";
int nl=10,nr=11;
int h=-1;
if(hand.equals("left"))h=L;
else h=R;
//System.out.println("H:"+h);
for(int i=0;i<numbers.length;i++) {
int ll = qqq(nl, numbers[i]);
int rr = qqq(nr, numbers[i]);
if(aa[numbers[i]][1]==0) {
answer+="L"; nl=numbers[i];
}
else if(aa[numbers[i]][1]==2) {
answer+="R"; nr=numbers[i];
}
else {
if(ll<rr) {
answer+="L"; nl=numbers[i];
}
else if(rr<ll) {
answer+="R"; nr=numbers[i];
}
else {
if(h==L) {
answer+="L"; nl=numbers[i];
}
else {
answer+="R"; nr=numbers[i];
}
}
}
}
return answer;
}
static int qqq(int a,int b) {
return (Math.abs(aa[a][0]-aa[b][0])+Math.abs(aa[a][1]-aa[b][1]));
}
}
'Programmers > Java, Ruby' 카테고리의 다른 글
프로그래머스 Java : 크레인 인형뽑기 게임 (0) | 2022.12.16 |
---|---|
프로그래머스 Java / Ruby : 가장 가까운 같은 글자 (0) | 2022.12.14 |
프로그래머스 Java : 완주하지 못한 선수 (0) | 2022.12.09 |
프로그래머스 Java / Ruby : 체육복 (0) | 2022.12.07 |
프로그래머스 Java / Ruby : 푸드 파이트 (0) | 2022.12.05 |