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

파이썬에서 주식 시장에서 여러 번 매수하여 얻을 수 있는 최대 이익을 찾는 프로그램

<시간/>

시간 순서대로 회사의 주가를 나타내는 가격 목록이 있다고 가정하고 해당 주식을 여러 번 사고 팔 때 얻을 수 있는 최대 이익을 찾아야 합니다. 우리는 그것을 팔기 전에 먼저 사야 한다는 것을 명심해야 합니다.

따라서 입력이 가격 =[10, 50, 30, 40, 60]과 같으면 출력은 70이 됩니다. 우리는 10에서 사고, 50에서 팔고, 30에서 사고, 60에서 팔 수 있기 때문입니다.

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

  • prev_price :=무한대
  • 이익:=0
  • 가격의 각 p에 대해 다음을 수행합니다.
    • p> prev_price이면
      • 이익 :=이익 + p - 이전 가격
    • 이전_가격:=p
  • 수익금

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

예시

class Solution:
   def solve(self, prices):
      prev_price = float("inf")
      profit = 0
      for p in prices:
         if p > prev_price:
            profit += p - prev_price
            prev_price = p
      return profit
ob = Solution()
print(ob.solve([10, 50, 30, 40, 60]))

입력

[10, 50, 30, 40, 60]

출력

70