처음에 승객이 이용할 수 있는 빈 좌석이 있는 차량이 있다고 가정합니다. 차량은 동쪽으로만 운행하므로 우회전하여 서쪽으로 운전할 수 없습니다. 우리는 여행 목록을 제공했습니다. 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