현재 위치 (0, 0)(직교 평면)에 앉아 있는 로봇이 있다고 가정합니다. N(북쪽), S(남쪽), W(서쪽), E(동쪽)를 포함하여 만들 수 있는 이동 목록이 있는 경우. 목적지 좌표(x, y)에 도달할 수 있는지 확인해야 합니다.
따라서 입력이 move =['N','N','E','E','S'], (x,y) =(2,1)인 경우 출력은 True,
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- temp_coord :=[0,0]
- 동작의 각 동작에 대해 다음을 수행합니다.
- 이동이 "N"과 같으면
- temp_coord[1] :=temp_coord[1] + 1
- 그렇지 않으면 이동이 "S"와 같을 때
- temp_coord[1] :=temp_coord[1] - 1
- 그렇지 않고 이동이 "E"와 같을 때
- temp_coord[0] :=temp_coord[0] + 1
- 그렇지 않으면 이동이 "W"와 같을 때
- temp_coord[0] :=temp_coord[0] - 1
- 이동이 "N"과 같으면
- temp_coord[0]이 coord[0]과 같고 temp_coord[1]이 ascoord[1]과 같으면 True를 반환하고 그렇지 않으면 false를 반환합니다.
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
class Solution: def solve(self, moves, coord): temp_coord = [0,0] for move in moves: if move == "N": temp_coord[1] += 1 elif move == "S": temp_coord[1] -= 1 elif move == "E": temp_coord[0] += 1 elif move == "W": temp_coord[0] -= 1 return temp_coord[0] == coord[0] and temp_coord[1] == coord[1] ob = Solution() moves = ['N','N','E','E','S'] coord = [2,1] print(ob.solve(moves, coord))
입력
['N','N','E','E','S'], [2,1]
출력
True