[알고리즘] 주식 사고 팔기

짱구석·2020년 11월 29일
0
post-thumbnail

codekata 몰아서 하는거 반성해야되는데 왜 재밌슴?

문제

prices는 배열이며, 각 요소는 매일의 주식 가격입니다.
만약 한 번만 거래할 수 있다면 = 사고 팔 수 있다면, 제일 큰 이익은 얼마일까요?

예를 들어,

Input: [7,1,5,3,6,4]
Output: 5

설명: 2일(가격=1)에 샀다가 5일(가격=6)에 사는 것이 6-1이라 제일 큰 수익
7-1=6 은 안 되는거 아시죠? 먼저 사야 팔 수 있습니다.

Input: [7,6,4,3,1]
Output: 0

설명: 여기서는 매일 가격이 낮아지기 때문에 거래가 없습니다. 그래서 0

풀이

주식문제다. 이해가 빨랐다. 쌀 때 사서 비싸게 팔면된다.

최소값에서 사서 그 이후에 최대값에 팔면 된다.

근데 wecode relpit에 답이 나와있다 뭐냐 심지어 제출까지 되어있다.(나푼적없는데..)

def maxProfit(prices): 
  minimum = prices.index(min(prices))
  maximum = prices.index(max(prices[minimum:]))

  if minimum == maximum:
        return 0
  else:
        return prices[maximum] - prices[minimum]
        
/home/runner/Week-4-Day-2-CodeKataPythonW/tests.py:9: DeprecationWarning: Please use assertEqual instead.
  self.assertEquals(maxProfit([7,6,4,3,1]), 0)
.....
----------------------------------------------------------------------
Ran 5 tests in 0.005s

OK

머쓱하다.

결론: 주식은 함부로 하는게 아니다.

0개의 댓글