uploaded at 2022. 12. 15. 오전 9:48:26
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/67256
|
||||
|
||||
import java.util.*;
|
||||
class Solution {
|
||||
private int[] lp;
|
||||
private int[] rp;
|
||||
private static int[] checkin(int i, StringBuilder answer, int[] array, String aap, int[] pos){
|
||||
for (int j : array){
|
||||
if(i == j){
|
||||
answer.append(aap);
|
||||
System.out.println(aap);
|
||||
pos = position(i);
|
||||
|
||||
}
|
||||
}
|
||||
return pos;
|
||||
}
|
||||
private static int[][] checkin(int i, StringBuilder answer, int[] array, String aap, int[] lp, int[] rp){
|
||||
for (int j : array){
|
||||
if(i == j){
|
||||
int[] goOn = position(i);
|
||||
int lv = Math.abs(lp[0]-goOn[0])+Math.abs(lp[1]-goOn[1]);
|
||||
int rv = Math.abs(rp[0]-goOn[0])+Math.abs(rp[1]-goOn[1]);
|
||||
if(lv < rv || (lv == rv && aap.equals("left"))) {
|
||||
aap = "L";
|
||||
lp = goOn;
|
||||
}
|
||||
else {
|
||||
aap = "R";
|
||||
rp = goOn;
|
||||
}
|
||||
answer.append(aap);
|
||||
System.out.println(aap);
|
||||
|
||||
}
|
||||
}
|
||||
return new int[][] {lp, rp};
|
||||
}
|
||||
private static int[] position(int i){
|
||||
int[] retu = new int[2];
|
||||
if(i > 0){
|
||||
int r = (i-1)/3;
|
||||
int c = (i-1)%3;
|
||||
retu[0] = r;
|
||||
retu[1] = c;
|
||||
} else {
|
||||
retu[0] = 3;
|
||||
retu[1] = 1;
|
||||
}
|
||||
return retu;
|
||||
}
|
||||
public String solution(int[] numbers, String hand) {
|
||||
StringBuilder answer = new StringBuilder();
|
||||
int[] left = {1,4,7};
|
||||
int[] right = {3,6,9};
|
||||
int[] mid = {2,5,8,0};
|
||||
int[] lp = {3, 0};
|
||||
int[] rp = {3, 2};
|
||||
List leftList = Arrays.asList(left);
|
||||
for (int i : numbers){
|
||||
lp = checkin(i, answer, left, "L", lp);
|
||||
rp = checkin(i, answer, right, "R", rp);
|
||||
int[][] result = checkin(i, answer, mid, hand, lp, rp);
|
||||
lp = result[0];
|
||||
rp = result[1];
|
||||
System.out.println("Lp" + Arrays.toString(lp) +"Rp "+ Arrays.toString(rp));
|
||||
}
|
||||
return answer.toString();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user