[Python] (문제풀이) 주식 가격 중 가장 큰 이익 구하기

이태권 (Taekwon Lee)·2022년 7월 2일
0

Code Kata 4-2. 주식 가격 중 가장 큰 이익 구하기

❓ 문제

문제

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

예시 1

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

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

예시 2

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

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

📝 접근 방식

  • 직관적인 풀이를 위해 배열 맨 뒤의 요소부터 맨 앞의 요소까지 뒷순서로 빼기로 했다.
  • 이를 위해 이중의 for 문을 만들었다.
  • 각 뺄셈에 대한 결과값을 빈 리스트에 차례차례 추가한다.
  • 그 중 가장 큰 값을 반한한다.
    • 단, 예외 조건으로 최대값이 음수일 경우 0을 반환하기로 했다.

❗️답안

def maxProfit(prices):
  prices_list = []
  for i in range(len(prices) - 1, -1 ,-1):
    for j in range(i - 1, -1, -1):
      prices_list.append(prices[i] - prices[j])
  result = max(prices_list)
  if result < 0:
    return 0
  return(result)
profile
(Backend Dev.) One step at a time

0개의 댓글