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

Python의 자동차 풀링

<시간/>

처음에 승객이 이용할 수 있는 빈 좌석이 있는 차량이 있다고 가정합니다. 차량은 동쪽으로만 운행하므로 우회전하여 서쪽으로 운전할 수 없습니다. 우리는 여행 목록을 제공했습니다. trip[i] =[num_passengers, start_location, end_location]에는 i번째 여행에 대한 정보가 포함되어 있습니다. 그리고 그것들을 내려놓습니다. 여기서 위치는 차량의 초기 위치에서 정동쪽으로 킬로미터 수로 표시됩니다. 우리 모듈은 주어진 모든 여행에 대해 모든 승객을 태우고 내릴 수 있는 경우에만 true를 반환합니다. 따라서 여행이 [[2,1,5],[3,3,7]]과 같고 용량이 5이면 출력은 true가 됩니다.

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

  • 크기가 1000인 stop이라는 배열 하나를 만들고 0으로 채웁니다.
  • 여행 중인 나를 위해
    • 정지[i[1]] :=정지[i[1]] + i[0]
    • 정지[i[2]] :=정지[i[1]] – i[0]
  • 중단에 있는 i에 대해 -
    • 용량 :=용량 – i
    • 용량 <0이면 false를 반환합니다.
  • 용량>=0인 경우 true를 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

class Solution(object):
   def carPooling(self, trips, capacity):
      stops = [0 for i in range(1001)]
      for i in trips:
         stops[i[1]]+=i[0]
         stops[i[2]]-=i[0]
      for i in stops:
         capacity-=i
         if capacity<0:
            return False
      return capacity>=0
ob = Solution()
print(ob.carPooling([[2,1,5],[3,3,7]],5))

입력

[[2,1,5],[3,3,7]]
5

출력

True