728x90
반응형
처음에 푼 코드
시간초과가 발생해 다시 한 번 생각하며 생각했다.
T = int(input())
for _ in range(T):
n = int(input())
arr = list(map(int, input().split()))
profit = 0
for i in range(n):
tmp = 0
maxtmp = 0
for j in range(i+1,n):
if arr[i] < arr[j]:
tmp = arr[j]-arr[i]
if maxtmp < tmp:
maxtmp = tmp
profit += maxtmp
print(f'#{_ + 1} {profit}')
처음엔 그리디로 해결하려다가 인덱스번호, 이것저것 저장해서 신경쓸게 많아서 단순하게 뒤에서부터 접근하니 문제가 쉽게 풀렸다.
T = int(input())
for _ in range(T):
n = int(input())
arr = list(map(int, input().split()))
profit = 0
tmp = arr[-1]
for i in range(n-1, -1, -1):
if tmp >= arr[i]:
profit +=(tmp-arr[i])
else:
tmp = arr[i]
print(f'#{_ + 1} {profit}')
완성
728x90
반응형
'알고리즘' 카테고리의 다른 글
[백준] 11720번: 숫자의 합 - java (0) | 2024.07.10 |
---|---|
java 입, 출력받기 (0) | 2024.06.30 |
[SWEA] 최대 상금 - python (0) | 2024.05.13 |
[SWEA] 한빈이와 Spot Mart - python (0) | 2024.05.13 |
[백준] 15988번: 1, 2, 3 더하기 3 - python (0) | 2024.05.07 |