본문 바로가기
Algorithm/Programmers

[Programmers] Lv.0 | 캐릭터의 좌표 | Java

by unknownomad 2025. 10. 4.

문제

https://school.programmers.co.kr/learn/courses/30/lessons/120861

 

풀이

class Solution {
    public int[] solution(String[] keyinput, int[] board) {
        // 현재 위치를 (0, 0)으로 초기화
        int x = 0;
        int y = 0;

        // 보드의 절반 크기 계산 (최대 이동 범위 설정)
        int maxX = board[0] / 2;
        int maxY = board[1] / 2;

        // 입력된 방향키를 하나씩 처리
        for (String key : keyinput) {
            if (key.equals("left")) {
                // 왼쪽으로 이동 (범위 내일 때만)
                if (x > -maxX) {
                    x--;
                }
            } else if (key.equals("right")) {
                // 오른쪽으로 이동 (범위 내일 때만)
                if (x < maxX) {
                    x++;
                }
            } else if (key.equals("up")) {
                // 위쪽으로 이동 (범위 내일 때만)
                if (y < maxY) {
                    y++;
                }
            } else if (key.equals("down")) {
                // 아래쪽으로 이동 (범위 내일 때만)
                if (y > -maxY) {
                    y--;
                }
            }
        }

        // 최종 위치 반환
        return new int[] {x, y};
    }
}

댓글