더북(TheBook)

icon_cakewalk 프로그램 18-2

 

최대 수익을 구하는 알고리즘 ②

 

◉ 예제 소스 p18-2-maxprofit.py

# 주어진 주식 가격을 보고 얻을 수 있는 최대 수익을 구하는 알고리즘

# 입력: 주식 가격의 변화 값(리스트: prices)

# 출력: 한 주를 한 번 사고팔아 얻을 수 있는 최대 수익 값

 

def max_profit(prices):

    n = len(prices)

    max_profit = 0         # 최대 수익은 항상 0 이상의 값

    min_price = prices[0]  # 첫째 날의 주가를 주가의 최솟값으로 기억

    for i in range(1, n):  # 1부터 n - 1까지 반복

        # 지금까지의 최솟값에 주식을 사서 i날에 팔 때의 수익

        profit = prices[i] - min_price

        if profit > max_profit:    # 이 수익이 지금까지 최대 수익보다 크면 값을 고침

            max_profit = profit

        if prices[i] < min_price:  # i날 주가가 최솟값보다 작으면 값을 고침

            min_price = prices[i]

 

    return max_profit

 

stock = [10300, 9600, 9800, 8200, 7800, 8300, 9500, 9800, 10200, 9500]

print(max_profit(stock))

 

icon_result 실행 결과

 

2400

 

 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.