[LeetCode] Robot Return to Origin

아르당·2026년 2월 12일

LeetCode

목록 보기
145/213
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

2차원 평면상의 원점(0, 0)에서 로봇이 출발한다. 로봇의 일련의 이동이 주어졌을 때, 로봇이 모든 이동을 완료한 후 다시 (0,0)에 도달하는지 판단해라.

로봇의 이동 순서를 나타내는 문자열 'moves'가 주어진다. 여기서 'moves[i]'는 i번째 이동을 나타낸다. 유효한 이동은 'R'(오른쪽), 'L'(왼쪽), 'U'(위), 'D'(아래)이다.

로봇이 모든 이동을 마친 후 원점으로 돌아오면 true를 반환하고, 그렇지 않으면 false를 반환해라.

Example

#1
Input: moves = "UD"
Output: true
Explanation: 로봇이 한 번 위로 움직인 다음 한 번 아래로 움직인다. 모든 움직임의 크기가 동일하므로 로봇은 시작 위치인 원점으로 돌아온다. 따라서 true를 반환한다.

#2
Input: moves = "LL"
Output: false
Explanation: 로봇이 왼쪽으로 두 번 이동한다. 최종적으로 로봇은 원점에서 왼쪽으로 두 번 이동한 위치에 있게 된다. 이동이 끝났을 때, 로봇이 원점에 있지 않으므로 false를 반환한다.

Constraints

  • 1 <= moves.length <= 2 * 10^4
  • moves는 오직 문자 'U', 'D', 'L', 'R'만 포함한다.

Solved

class Solution {
    public boolean judgeCircle(String moves) {
        int UD = 0;
        int LR = 0;

        for(char move : moves.toCharArray()){
            switch(move){
                case 'U':
                    UD++;
                    break;
                case 'D':
                    UD--;
                    break;
                case 'L':
                    LR++;
                    break;
                case 'R':
                    LR--;
                    break;
            }
        }

        return (UD == 0 && LR == 0);
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글