[JAVA/프로그래머스] 캐릭터의 좌표

윤소영·2023년 6월 17일
0

JAVA

목록 보기
22/41

문제

답안 코드

class Solution {
    public int[] solution(String[] keyinput, int[] board) {
        int[] answer = {0, 0};
        for(int i = 0; i < keyinput.length; i++){
            if(keyinput[i].equals("left")) {
                answer[0] -= 1;
                if((Math.abs(answer[0]) > board[0]/2) && answer[0] < 0) 
                    answer[0] = -(board[0]/2);
            }
            if(keyinput[i].equals("right")){
                answer[0] += 1;
                if((Math.abs(answer[0]) > board[0]/2) && answer[0] > 0) 
                    answer[0] = board[0]/2;
            } 
            if(keyinput[i].equals("up")){
                answer[1] += 1;
                if((Math.abs(answer[1]) > board[1]/2) && answer[1] > 0) 
                    answer[1] = board[1]/2;
            } 
            if(keyinput[i].equals("down")){
                answer[1] -= 1;
                if((Math.abs(answer[1]) > board[1]/2) && answer[1] < 0) 
                    answer[1] = -(board[1]/2);
            } 
        }
        // if((Math.abs(answer[0]) > board[0]/2) && answer[0] < 0) answer[0] = -(board[0]/2);
        // if((Math.abs(answer[0]) > board[0]/2) && answer[0] > 0) answer[0] = board[0]/2;
        // if((Math.abs(answer[1]) > board[1]/2) && answer[1] < 0) answer[1] = -(board[1]/2);
        // if((Math.abs(answer[1]) > board[1]/2) && answer[1] > 0) answer[1] = board[1]/2;
        return answer;
    }
}

코드 풀이

테스트케이스 8에서 오류가 났었는데 board 범위 제한 두는걸 주석대로 하면 옮기는 과정에서 이미 범위 밖으로 벗어나면 제한선에서 시작해야하는데 제한선 밖에 벗어난 그 시점부터 시작하기 때문에 범위 제한문을 같이 둬야한다.

0개의 댓글