알고리즘/SWEA

[Python] SWEA D2 1859번 - 백만 장자 프로젝트

번잔중 2022. 8. 21. 20:05
 

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))

- 뒤에서부터 큰 값을 저장해두고 앞쪽으로 탐색합니다.

- 탐색 과정에서 저장한 값보다 큰 수가 나타나면 그 수를 새로운 큰 값으로 저장하고, 작은 수가 나타나면 큰 값에서 작은 수를 빼고 남은 것을 총 합계에 더해주는 과정을 반복합니다.

 

뒤에서부터 넣는 아이디어를 생각하지 못했습니다. ㅠㅠ 다음에 다시 풀어보는걸로!!

 

피드백은 언제나 환영합니다.