캐릭터의 좌표

문제


나의 생각

첫번째로는 board 내에 있는 값들을 / 2 반내림으로 처리하여 움직일 수 값을 재지정. 

keyinput 값을 switch로 구분하여 move 값을 지정. 

move가 board의 최대 범위를 벗어 날때는 board 최대 값으로 지정하는 수식으로 추가.


나의 답안

public static int[] solution(String[] keyinput, int[] board) {
    int[] move = {0,0};
    for (int i = 0; i < board.length; i++) {
        board[i] = (int) Math.floor(board[i] / 2);
    }
    int length = 0;
    while (length != keyinput.length) {
        switch (keyinput[length]){
            case "left" :
                move[0]--;
                break;
            case "right" :
                move[0]++;
                break;
            case "up" :
                move[1]++;
                break;
            case "down" :
                move[1]--;
                break;
        }
        length++;
        for (int i = 0; i < move.length; i++) {
            boolean isMinus = false;
            if (move[i] < 0){
                isMinus = true;
                move[i] *= -1;
            }
            move[i] = move[i] < board[i] ? move[i] : board[i];
            if (isMinus){
                move[i] *= -1;
            }
        }
        System.out.println(Arrays.toString(move));
    }

    return move;
}

'Programmers 문제풀이 > Lv.0' 카테고리의 다른 글

직사각형 넓이 구하기  (0) 2023.03.08
종이 자르기  (0) 2023.03.07
외계어 사전  (0) 2023.03.07
삼각형의 완성조건 (2)  (0) 2023.03.07
구슬을 나누는 경우의 수  (0) 2023.03.06