💡문제접근
- 최대 이익을 내기 위해서는 매수시점과 매도시점을 정확히 파악하고 싼 값에 매수를 하고 비싼 값에 매도를 한다는 점을 명심하고 코드를 작성했다.
💡코드1(메모리 : 55064KB, 시간 : 236ms)
import sys
input = sys.stdin.readline
N = int(input())
ANA = list(map(int, input().strip().split()))
Max_benefit = 0
result = 0
for i in range(N-1, -1, -1):
Max_benefit = max(Max_benefit, ANA[i])
result = max(result, Max_benefit - ANA[i])
print(result)
💡코드2(메모리 : 55064KB, 시간 : 144ms)
import sys
input = sys.stdin.readline
N = int(input())
stock = list(map(int, input().strip().split()))
result = 0
min_price = stock[0]
for i in range(1, N):
if stock[i] < min_price:
min_price = stock[i]
else:
profit = stock[i] - min_price
if profit > result:
result = profit
print(result)
💡소요시간 : 9m