728x90
https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/description/
그리디 하게 문제를 풀었습니다.
전부를 탐색하며 현재 다음 가격부터 탐색을 하며
가격이 우상향중일때는 팔지 않고
우상향하다 최고점일때 판매하는 전략을 사용하였습니다.
제가 푼 풀이는 그래프상 속도가 빠르지는 않네요..
제가 푼 풀이 :
class Solution:
def maxProfit(self, prices: List[int]) -> int:
answer = 0
i = 0
while i < len(prices):
current_price = prices[i]
target_sell_price = current_price
sell_flag = False
for j in range(i + 1, len(prices)):
if prices[j] <= target_sell_price:
i = j -1
break
target_sell_price = prices[j]
if j == len(prices) - 1:
sell_flag = True
answer += target_sell_price - current_price
if sell_flag:
break
i += 1
return answer
다른 분들의 풀이를 참고한 풀이:
결국 가격이 우상향일때는 샀다 팔았다를 해도 저렴했을때 샀다가 꼭지점일때 팔은 가격이 나오기때문에
아래처럼 코드를 써도 무관했음..
class Solution:
def maxProfit(self, prices: List[int]) -> int:
answer = 0
for i in range(1, len(prices)):
# 현재 가격이 이전가격보다 크다면
if prices[i] > prices[i - 1]:
answer += prices[i] - prices[i - 1]
return answer
728x90
'PS > 릿코드' 카테고리의 다른 글
[릿코드 1497] Check If Array Pairs Are Divisible by k (파이썬/python) (0) | 2023.03.08 |
---|---|
[릿코드 875] Koko Eating Bananas (파이썬/python) (0) | 2023.03.08 |
[릿코드 2187] Minimum Time to Complete Trips (파이썬/python) (0) | 2023.03.07 |
[릿코드 2] Add Two Numbers (파이썬/python) (0) | 2023.03.06 |
[릿코드 873] Length of Longest Fibonacci Subsequence (파이썬/python) (0) | 2023.03.03 |