function solution(keyinput, board) {
const [MAX_WIDTH, MAX_HEIGHT] = board;
let moveObj = {
"left": [-1, 0],
"right": [1, 0],
"up": [0, 1],
"down": [0, -1]
};
let cur = [0, 0];
for(let input of keyinput) {
const [MOVE_COL, MOVE_ROW] = moveObj[input];
const [CUR_COL, CUR_ROW] = cur;
const [NEXT_ROW, NEXT_COL] = [CUR_ROW + MOVE_ROW, CUR_COL + MOVE_COL];
if(Math.abs(NEXT_COL) > Math.floor(MAX_WIDTH / 2)) continue;
if(Math.abs(NEXT_ROW) > Math.floor(MAX_HEIGHT / 2)) continue;
cur = [NEXT_COL, NEXT_ROW];
}
return cur;
}
흔히 행렬에서 위로 간다고하면 행이 마이너스 되어서 [2][2] 였을 시에, [1][2]가 된다.
당연히 그렇게 생각하고 문제를 대충보고 풀었다가 왜 틀리지...? 라는 생각만 계속했다 ㅋㅋㅋㅋ
문제를 잘 읽어보고 착각하지 않으면 구현엔 크게 어려운것이 없는 문제이다!
'PS > Programmers' 카테고리의 다른 글
Programmers / Level 2 / 연속 부분 수열 합의 개수 / JS (0) | 2023.01.27 |
---|---|
Programmers / Level 2 / [3차] 압축 / JS (0) | 2023.01.25 |
Programmers / Level 2 / 귤 고르기 / JS (0) | 2023.01.21 |
Programmers / Level 3 / 줄 서는 방법 / JS (1) | 2023.01.21 |