#include <iostream>
#include <algorithm>
#include <vector>
 
int main()
{
    int T = 0;
    std::cin >> T;
 
    while (T--)
    {
        int iCount = 0;
        std::cin >> iCount;
 
        std::vector<int> vec(iCount, 0);
 
        for (int i = 0; i < iCount; ++i)
        {
            std::cin >> vec[i];
        }
 
        int iMax = 0;
        long long lAns = 0;
 
        for (int i = vec.size() -1; i >= 0; --i)
        {
            iMax = std::max(iMax, vec[i]);
            lAns += (long long)(iMax - vec[i]);
        }
 
        std::cout << lAns << "\n";
    }
 
    return 0;
}
 

백에서부터 계산

양이 많아서 O(N)으로만 해야함, O(N의 2)만 해도 시간 초과 나온다...

'오늘의 알고리즘' 카테고리의 다른 글

[C++] 백준 2668 숫자고르기  (0) 2022.06.21
[C++] 백준 2304 창고 다각형  (0) 2022.06.20
[C++] 백준 4179 불!  (0) 2022.06.18
[C++] 백준 3687 성냥개비  (0) 2022.06.17
[C++] 백준 19637 IF문 좀 대신 써줘  (0) 2022.06.17

+ Recent posts