<--- 리트코드 121. Best Time to Buy and Self Stock --->
# 문제: 한 번의 거래로 낼 수 있는 최대 이익을 산출하라.
입력
[7, 1, 5, 3, 6, 4] |
출력
5 |
# 풀이
1. 브루트 포스로 계산
1
2
3
4
5
6
7
8
9
10
|
def max_profit(price):
max_price = 0
for i in range(0, len(price) - 1):
for j in range(i + 1, len(price)):
max_price = max(price[j] - price[i], max_price)
return max_price
price = [7, 1, 5, 3, 6, 4]
print(max_profit(price))
|
cs |
2. 저점과 현재 값과의 차이 계산
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import sys
def max_profit(price):
profit = 0
min_price = sys.maxsize
for i in price:
min_price = min(i, min_price)
profit = max(i - min_price, profit)
return profit
price = [7, 1, 5, 3, 6, 4]
print(max_profit(price))
|
cs |
'Python' 카테고리의 다른 글
파이썬 알고리즘 인터뷰 - 14. 두 정렬 리스트의 병합 (0) | 2022.01.17 |
---|---|
파이썬 알고리즘 인터뷰 - 13. 팰린드롬 연결 리스트 (0) | 2022.01.17 |
파이썬 알고리즘 인터뷰 - 11. 자신을 제외한 배열의 곱 (0) | 2022.01.15 |
파이썬 알고리즘 인터뷰 - 10. 배열 파티션Ⅰ (0) | 2022.01.15 |
파이썬 알고리즘 인터뷰 - 09. 세 수의 합 (0) | 2022.01.12 |