본문 바로가기
코딩테스트 문제집/Programmers(Lv0)

[Programmers] Lv0: 캐릭터의 좌표(120861)

by cogito30 2025. 2. 12.
반응형

문제

- 링크: https://school.programmers.co.kr/learn/courses/30/lessons/120861?language=java

 

풀이

더보기
class Solution {
    public int[] solution(String[] keyinput, int[] board) {
        int[] answer = new int[2];
        int x = 0;
        int y = 0;
        int minX = -board[0] / 2;
        int maxX = board[0] / 2;
        int minY = -board[1] / 2;
        int maxY = board[1] / 2;
        for (int i = 0; i < keyinput.length; ++i) {
            int nx = x;
            int ny = y;
            if (keyinput[i].equals("up")) {
                ny += 1;
            } else if (keyinput[i].equals("down")) {
                ny -= 1;
            } else if (keyinput[i].equals("left")) {
                nx -= 1;
            } else if (keyinput[i].equals("right")) {
                nx += 1;
            }
            
            if (nx >= minX && nx <= maxX && ny >= minY && ny <= maxY) {
                x = nx;
                y = ny;
            }
        }
        
        answer[0] = x;
        answer[1] = y;
        return answer;
    }
}

 

반응형