FrontEnd/프로그래머스

[JS] 캐릭터의 좌표

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