문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
2차원 평면상의 원점(0, 0)에서 로봇이 출발한다. 로봇의 일련의 이동이 주어졌을 때, 로봇이 모든 이동을 완료한 후 다시 (0,0)에 도달하는지 판단해라.
로봇의 이동 순서를 나타내는 문자열 'moves'가 주어진다. 여기서 'moves[i]'는 i번째 이동을 나타낸다. 유효한 이동은 'R'(오른쪽), 'L'(왼쪽), 'U'(위), 'D'(아래)이다.
로봇이 모든 이동을 마친 후 원점으로 돌아오면 true를 반환하고, 그렇지 않으면 false를 반환해라.
#1
Input: moves = "UD"
Output: true
Explanation: 로봇이 한 번 위로 움직인 다음 한 번 아래로 움직인다. 모든 움직임의 크기가 동일하므로 로봇은 시작 위치인 원점으로 돌아온다. 따라서 true를 반환한다.
#2
Input: moves = "LL"
Output: false
Explanation: 로봇이 왼쪽으로 두 번 이동한다. 최종적으로 로봇은 원점에서 왼쪽으로 두 번 이동한 위치에 있게 된다. 이동이 끝났을 때, 로봇이 원점에 있지 않으므로 false를 반환한다.
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);
}
}