코테 노트/백준

백준 11501 주식 Python3

화요밍 2021. 8. 16. 02:07
728x90
반응형

https://www.acmicpc.net/problem/11501

 

11501번: 주식

입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타

www.acmicpc.net

 

최종 코드

 

GitHub - hwayeon351/BEAKJOON-Algorithms: 백준 알고리즘 소스 코드 모음

백준 알고리즘 소스 코드 모음. Contribute to hwayeon351/BEAKJOON-Algorithms development by creating an account on GitHub.

github.com

T = int(input())
for _ in range(T):
    N = int(input())
    stock = list(map(int, input().split()))
    earn = 0
    max_p = stock[-1]
    for i in range(N-2, -1, -1):
        if stock[i] > max_p:
            max_p = stock[i]
        else:
            earn += max_p-stock[i]
    print(earn)

풀이 과정

T = int(input())
for _ in range(T):
    N = int(input())
    stock = list(map(int, input().split()))
    earn = 0
    #맨 마지막 값을 최대 주가로 초기화
    max_p = stock[-1]
    for i in range(N-2, -1, -1):
        #현재 주가가 더 큰 경우, max_p 값을 현재 주가로 한다
        if stock[i] > max_p:
            max_p = stock[i]
        #현재 주가가 최대 주가보다 작거나 같은 경우, 주식을 판다
        else:
            earn += max_p-stock[i]
    print(earn)
#시간복잡도 = O(T*N), 공간복잡도 = O(T*N)
728x90
반응형