Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 로봇이 목표 위치에 도달할 수 있는지 확인하는 프로그램

<시간/>

현재 위치 (0, 0)(직교 평면)에 앉아 있는 로봇이 있다고 가정합니다. N(북쪽), S(남쪽), W(서쪽), E(동쪽)를 포함하여 만들 수 있는 이동 목록이 있는 경우. 목적지 좌표(x, y)에 도달할 수 있는지 확인해야 합니다.

따라서 입력이 move =['N','N','E','E','S'], (x,y) =(2,1)인 경우 출력은 True,

Python에서 로봇이 목표 위치에 도달할 수 있는지 확인하는 프로그램

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 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
  • 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