문제
답안 코드
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 범위 제한 두는걸 주석대로 하면 옮기는 과정에서 이미 범위 밖으로 벗어나면 제한선에서 시작해야하는데 제한선 밖에 벗어난 그 시점부터 시작하기 때문에 범위 제한문을 같이 둬야한다.