기록하고 까먹지 말기

11501 본문

전공/백준

11501

yha97 2022. 11. 24. 14:10

날짜 : 2022. 11. 24

사용 언어 : python

 

문제

 

 

코드

import sys

t = int(sys.stdin.readline())  # 테스트케이스
for _ in range(t):
    n = int(sys.stdin.readline())
    a = list(map(int, sys.stdin.readline().split()))
    total = 0
    max_price = 0
    for i in range(len(a)-1, -1, -1):  # 역순으로 진행
        if a[i] > max_price: max_price = a[i]  # 최댓값 갱신
        else:
            total += max_price - a[i]  # 최고점에서 매도
    print(total)

 

 

풀이

- 정순으로 진행면서 각 수 이후의 max를 찾는 방법을 제출했으나 시간초과가 발생했다.

- 그래서 반대로 역순으로 진행하면서 최댓값을 저장한 후 그 값보다 작으면 매도, 크다면 갱신하는 방식으로 for문을 돌렸다.

 

 

알게된 점

 

 

참고 사이트

 

'전공 > 백준' 카테고리의 다른 글

10799  (0) 2022.11.26
5567  (0) 2022.11.24
11727  (0) 2022.11.23
9009  (0) 2022.11.23
1994  (0) 2022.11.23