728x90
2차원 배열에서 특정캐릭터의 움직임을 표현하는 것이기에 dx,dy 를 써서 구현해보았다.
switch문을 사용할 수도있지만 dx,dy를 활용하면 나중에 대각선의 움직임까지 확장하기가 편하다
function solution(keyinput, board) {
const dx =[0,1,0,-1]
const dy=[1,0,-1,0]
const keyInfo = {
"up" : 0,
"right" : 1,
"down" : 2,
"left" : 3
}
const maxX = parseInt(board[0]/2)
const maxY = parseInt(board[1]/2)
const player = [0,0]
for (const key of keyinput){
const nx = player[0] +dx[keyInfo[key]]
const ny = player[1] +dy[keyInfo[key]]
player[0] = (nx<= maxX && nx>=-maxX) ? nx : player[0]
player[1] = (ny<= maxY && ny>=-maxY) ? ny : player[1]
}
return player;
}
728x90
'FrontEnd > 프로그래머스' 카테고리의 다른 글
[JS] 저주의 숫자 3 (0) | 2023.03.02 |
---|---|
[JS] 안전지대 (0) | 2023.02.28 |
[JS] 7의 개수 (0) | 2023.02.26 |
[JS] 문자열 정렬하기 (2) (0) | 2023.02.26 |
[JS] 한번만등장한 문자 (0) | 2023.02.19 |