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

Python에서 주어진 조건으로 작업 수를 찾는 프로그램을 완료할 수 있습니다.

<시간/>

작업 목록과 다른 사람 목록이 있다고 가정합니다. 작업[i]은 i번째 작업을 수행하는 데 필요한 강도의 양을 결정합니다. 그리고 people[i]은 i번째 사람이 가지고 있는 힘의 양을 결정합니다. 마지막으로 한 사람이 최대 하나의 작업을 수행할 수 있는 경우 완료할 수 있는 작업의 수를 찾아야 합니다.

따라서 입력이 task =[4, 3, 9, 15], people =[10, 5, 3, 2]인 경우 첫 번째 사람이 작업 9를 수행할 수 있고 두 번째 사람이 수행할 수 있으므로 출력은 3이 됩니다. 작업 4를 수행하고, 세 번째 사람은 작업 3을 수행할 수 있으며, 네 번째 사람은 작업을 수행할 수 없습니다.

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

  • 목록 작업 정렬, 목록 사람들 정렬
  • ct:=0, ind:=0
  • 범위 0에서 사람 크기까지의 경우 다음을 수행합니다.
    • 작업의 크기와 범위에 있는 j에 대해 다음을 수행합니다.
      • 사람[i]>=작업[j]이면
        • ct :=ct + 1
        • ind :=ind + 1
        • 루프에서 나오다
      • 그렇지 않으면
        • 루프에서 나오다
  • ct를 반환

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

class Solution:
   def solve(self, tasks, people): tasks.sort()
      people.sort()
      ct=0
      ind=0
      for i in range(len(people)):
         for j in range(ind,len(tasks)):
            if people[i]>=tasks[j]:
               ct+=1
               ind+=1
               break
            else:
               break
         return ct
ob = Solution()
tasks = [4, 3, 9, 15]
people = [10, 5, 3, 2] print(ob.solve(tasks, people))

입력

[4, 3, 9, 15], [10, 5, 3, 2]

출력

3