👍 썸네일 출처
N * N의 크기를 가진 체스판 위에서 게임을 하려고 합니다. 게임의 룰은 다음과 같습니다.
Number
타입의 2차원 배열string
타입의 대문자 영어가 쓰여진 문자열U, L, D, R
이외의 문자열은 없습니다.Number
타입을 반환해야 합니다.const board1 = [
[0, 0, 0, 1],
[1, 1, 1, 0],
[1, 1, 0, 0],
[0, 0, 0, 0]
]
const output1 = boardGame(board1, 'RRDLLD');
console.log(output1); // 4
// x축 y축을 만들고(시작지점은 0,0)
// 방향 문자열의 개수를 기준으로 for문 진행
// if문으로 방향에 맞게 x,y값 변경
// 만약 해당 방향으로 x혹은 y가 -1로 배열 길이보다 커진다면 해당 방향은 무시
// x,y가 증감한 다음 board 배열에 해당 위치 value를 찾고 총합에 더한다.
function boardGame(board, operation) {
let Y = 0;
let X = 0;
let result = 0;
let current = board[0][0];
for (let direction of operation) {
if (direction === 'U') Y += - 1; X += 0;
if (direction === 'D') Y += 1; X += 0;
if (direction === 'L') Y += 0; X += - 1;
if (direction === 'R') Y += 0; X += 1;
if (Y < 0 || Y > board.length || X < 0 || X > board.length) {
continue;
}
current = board[Y][X];
result = result + current;
}
return result;
};