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

파이썬에서 주식 시장에서 한 번 사면 얻을 수 있는 최대 이익을 찾는 프로그램

<시간/>

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

따라서 입력이 가격 =[10, 12, 9, 6, 8, 12]와 같으면 출력은 6이 됩니다. 6에서 사고 12에서 팔 수 있기 때문입니다.

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

  • 최대 수익 :=0
  • 최소 재고 :=무한대
  • 가격의 각 가격에 대해 다음을 수행합니다.
    • max_profit :=max_profit의 최대값 및 (가격 - min_stock)
    • min_stock :=min_stock 및 가격의 최소값
  • 최대 수익을 반환

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

예시

class Solution:
   def solve(self, prices):
      max_profit = 0
      min_stock = float('inf')
      for price in prices:
         max_profit = max(max_profit, price - min_stock)
         min_stock = min(min_stock, price)
      return max_profit
ob = Solution()
print(ob.solve([10, 12, 9, 6, 8, 12]))

입력

[10, 12, 9, 6, 8, 12]

출력

6