문제 분석
주어진 키 입력에 따라 RPG 게임 캐릭터가 이동하는 문제였다.
캐릭터는 [0, 0]에서 시작하고, 주어진 keyinput 배열에 따라 좌표를 이동한다.
이 문제에서 주의할 점은 주어진 맵의 크기를 벗어나지 않도록 이동 범위를 제한해야 했다.
class Solution {
public int[] solution(String[] keyinput, int[] board) {
int x = 0, y = 0;
// keyinput 배열에 따라 좌표 이동
for(String key : keyinput){
switch(key){
case "right":
if(x < board[0]/2) x++; // 오른쪽으로 이동
break;
case "left":
if(x > -board[0]/2) x--; // 왼쪽으로 이동
break;
case "up":
if(y < board[1]/2) y++; // 위쪽으로 이동
break;
case "down":
if(y > -board[1]/2) y--; // 아래쪽으로 이동
break;
}
}
// 결과 좌표 반환
return new int[]{x, y};
}
}
문제 풀이
- keyinput 배열에 주어진 키를 처리하기 위해 switch문을 사용했다. 각 방향에 맞게 x, y 좌표를 조정했다.
- x와 y는 캐릭터의 현재 좌표로, 각 방향에 따라 1씩 증가하거나 감소했다.
- 이동할 때마다 맵을 벗어나지 않도록, 좌표 범위가 주어진 맵의 크기를 초과하지 않도록 조건을 추가했다. 예를 들어, right 방향으로 이동할 때는 x가 board[0]/2를 넘지 않도록 했다.
정리
이 문제는 switch문을 사용해 각 방향키 입력을 처리하고, 맵 범위 내에서만 이동을 허용하는 문제였다.
범위를 벗어나지 않도록 조건을 추가하는 부분만 신경 썼고, 그 외에는 간단하게 구현할 수 있었다.
댓글
댓글 작성은 로그인 후에 가능합니다.