오늘 푼 문제들은 좀 쉽게 쉽게 풀렸다 :)
머쓱이는 RPG게임을 하고 있습니다. 게임에는 up
, down
, left
, right
방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다. 예를 들어 [0,0]에서 up
을 누른다면 캐릭터의 좌표는 [0, 1], down
을 누른다면 [0, -1], left
를 누른다면 [-1, 0], right
를 누른다면 [1, 0]입니다. 머쓱이가 입력한 방향키의 배열 keyinput
와 맵의 크기 board
이 매개변수로 주어집니다. 캐릭터는 항상 [0,0]에서 시작할 때 키 입력이 모두 끝난 뒤에 캐릭터의 좌표 [x, y]를 return하도록 solution 함수를 완성해주세요.
[0, 0]은 board
의 정 중앙에 위치합니다. 예를 들어 board
의 가로 크기가 9라면 캐릭터는 왼쪽으로 최대 [-4, 0]까지 오른쪽으로 최대 [4, 0]까지 이동할 수 있습니다.
0 ≤ keyinput의 길이 ≤ 50
1 ≤ board[0] ≤ 99
1 ≤ board[1] ≤ 99
keyinput
은 항상 up
, down
, left
, right
만 주어집니다.garo
, sero
라는 범위 변수를 정해주고keyinput
배열에서 값을 하나씩 꺼내면서 문자열의 일치여부와 범위를 벗어나지 않는지 여부에 따라 위치를 옮겨준다.function solution(keyinput, board) {
// 범위
var garo = Math.floor(board[0] / 2);
var sero = Math.floor(board[1] / 2);
//현재 위치
var now = [0, 0];
for (let x of keyinput) {
if (x === "up" && now[1] < sero) now[1]++;
else if (x === "down" && now[1] > -sero) now[1]--;
else if (x === "left" && now[0] > -garo) now[0]--;
else if (x === "right" && now[0] < garo) now[0]++;
}
return now;
}