CK 033 | Week4 - Day2

This Is Empty.·2021년 10월 12일
0

codekata

목록 보기
33/35
post-thumbnail

문제

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

내가 작성한 코드

def maxProfit(prices):
  # 아래에 코드를 작성해주세요.
  return 0 if prices.index(min(prices)) == len(prices)-1 or min(prices) == max(prices) else max(prices[min(prices)::]) - min(prices)
  1. 가격이 매일 낮아지는 경우 == 최소 가격이 리스트의 맨 끝에 있을 경우
  2. 가격이 모두 동일한 경우

에는 0을 리턴하고

아니라면 최소값부터 시작한 가격리스트(사야 팔 수 있으므로)에서 최댓값을 구해 최소값을 빼준다.

profile
Convinced myself, I seek not to convince.

0개의 댓글