SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
T = int(input())
for t in range(1, T + 1):
n = int(input())
price = list(map(int, input().split()))
tot = 0
big = 0
for i in range(n-1, -1, -1):
if price[i] > big:
big = price[i]
else:
tot += big - price[i]
print('#%d %d' % (t, tot))
- 뒤에서부터 큰 값을 저장해두고 앞쪽으로 탐색합니다.
- 탐색 과정에서 저장한 값보다 큰 수가 나타나면 그 수를 새로운 큰 값으로 저장하고, 작은 수가 나타나면 큰 값에서 작은 수를 빼고 남은 것을 총 합계에 더해주는 과정을 반복합니다.
뒤에서부터 넣는 아이디어를 생각하지 못했습니다. ㅠㅠ 다음에 다시 풀어보는걸로!!
피드백은 언제나 환영합니다.
'알고리즘 > SWEA' 카테고리의 다른 글
[Python] SWEA D3 3431번 - 준환이의 운동관리 (0) | 2022.08.21 |
---|---|
[Python] SWEA D3 1206번 - [S/W 문제해결 기본] 1일차 View (0) | 2022.08.21 |
[Python] SWEA D2 1204번 - [S/W 문제해결 기본] 1일차 최빈수 구하기 (0) | 2022.08.21 |
[Python] SWEA D2 1966번 - 숫자를 정렬하자 (0) | 2022.08.21 |
[Python] SWEA D2 1946번 - 간단한 압축 풀기 (0) | 2022.08.21 |