[Programmers] level 1 - 키패드 누르기 (2020 카카오 인턴십)

Lynn·2021년 4월 2일
0

Algorithm

목록 보기
36/43
post-thumbnail

👩🏻‍💻 문제

👩🏻‍💻 정답 코드

class Solution {
    public String solution(int[] numbers, String hand) {
        String answer = "";

        int ld, rd;
        int[][] coor = {{0,0},{-1,3},{0,3},{1,3},{-1,2},{0,2},
        		{1,2},{-1,1},{0,1},{1,1},{-1,0},{1,0}};
        int[] loc = {10, 11};
        for (int i=0; i<numbers.length; i++){
            if (coor[numbers[i]][0]==-1){
                loc[0] = numbers[i];
                answer = answer + "L";
            }
            else if (coor[numbers[i]][0]==1){
                loc[1] = numbers[i];
                answer = answer + "R";
            }
            else {
                ld = Math.abs(coor[loc[0]][0]-coor[numbers[i]][0])
                	+ Math.abs(coor[loc[0]][1]-coor[numbers[i]][1]);
                rd = Math.abs(coor[loc[1]][0]-coor[numbers[i]][0])
                	+ Math.abs(coor[loc[1]][1]-coor[numbers[i]][1]);
                if ( ((ld==rd) && hand.equals("left")) || ld<rd){
                    loc[0] = numbers[i];
                    answer = answer + "L";
                }
                else{
                    loc[1] = numbers[i];
                    answer = answer + "R";
                }
            }
        }
        return answer;
    }
}


좌표를 이용해서 거리를 계산했다

profile
wanderlust

0개의 댓글