전공/백준
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문을 돌렸다.
알게된 점
-
참고 사이트
-