๐Ÿ•๏ธ ICPC Sinchon/Greedy

[BOJ][C++] ๋ฐฑ์ค€ 11501๋ฒˆ: ์ฃผ์‹

์„ ๋‹ฌ 2023. 1. 31. 21:59
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/11501

 

11501๋ฒˆ: ์ฃผ์‹

์ž…๋ ฅ์˜ ์ฒซ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ž์—ฐ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๋ณ„๋กœ ์ฒซ ์ค„์—๋Š” ๋‚ ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ž์—ฐ์ˆ˜ N(2 ≤ N ≤ 1,000,000)์ด ์ฃผ์–ด์ง€๊ณ , ๋‘˜์งธ ์ค„์—๋Š” ๋‚  ๋ณ„ ์ฃผ๊ฐ€๋ฅผ ๋‚˜ํƒ€

www.acmicpc.net

 

๋ฌธ์ œ

ํ™์ค€์ด๋Š” ์š”์ฆ˜ ์ฃผ์‹์— ๋น ์ ธ์žˆ๋‹ค. ๊ทธ๋Š” ๋ฏธ๋ž˜๋ฅผ ๋‚ด๋‹ค๋ณด๋Š” ๋ˆˆ์ด ๋›ฐ์–ด๋‚˜, ๋‚  ๋ณ„๋กœ ์ฃผ๊ฐ€๋ฅผ ์˜ˆ์ƒํ•˜๊ณ  ์–ธ์ œ๋‚˜ ๊ทธ๊ฒŒ ๋งž์•„๋–จ์–ด์ง„๋‹ค. ๋งค์ผ ๊ทธ๋Š” ์•„๋ž˜ ์„ธ ๊ฐ€์ง€ ์ค‘ ํ•œ ํ–‰๋™์„ ํ•œ๋‹ค.

  1. ์ฃผ์‹ ํ•˜๋‚˜๋ฅผ ์‚ฐ๋‹ค.
  2. ์›ํ•˜๋Š” ๋งŒํผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฃผ์‹์„ ํŒ๋‹ค.
  3. ์•„๋ฌด๊ฒƒ๋„ ์•ˆํ•œ๋‹ค.

ํ™์ค€์ด๋Š” ๋ฏธ๋ž˜๋ฅผ ์˜ˆ์ƒํ•˜๋Š” ๋›ฐ์–ด๋‚œ ์•ˆ๋ชฉ์„ ๊ฐ€์กŒ์ง€๋งŒ, ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ์ž์‹ ์ด ์ตœ๋Œ€ ์ด์ต์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š”์ง€ ๋ชจ๋ฅธ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹น์‹ ์—๊ฒŒ ๋‚  ๋ณ„๋กœ ์ฃผ์‹์˜ ๊ฐ€๊ฒฉ์„ ์•Œ๋ ค์ฃผ์—ˆ์„ ๋•Œ, ์ตœ๋Œ€ ์ด์ต์ด ์–ผ๋งˆ๋‚˜ ๋˜๋Š”์ง€ ๊ณ„์‚ฐ์„ ํ•ด๋‹ฌ๋ผ๊ณ  ๋ถ€ํƒํ–ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‚  ์ˆ˜๊ฐ€ 3์ผ์ด๊ณ  ๋‚  ๋ณ„๋กœ ์ฃผ๊ฐ€๊ฐ€ 10, 7, 6์ผ ๋•Œ, ์ฃผ๊ฐ€๊ฐ€ ๊ณ„์† ๊ฐ์†Œํ•˜๋ฏ€๋กœ ์ตœ๋Œ€ ์ด์ต์€ 0์ด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งŒ์•ฝ ๋‚  ๋ณ„๋กœ ์ฃผ๊ฐ€๊ฐ€ 3, 5, 9์ผ ๋•Œ๋Š” ์ฒ˜์Œ ๋‘ ๋‚ ์— ์ฃผ์‹์„ ํ•˜๋‚˜์”ฉ ์‚ฌ๊ณ , ๋งˆ์ง€๋ง‰๋‚  ๋‹ค ํŒ”์•„ ๋ฒ„๋ฆฌ๋ฉด ์ด์ต์ด 10์ด ๋œ๋‹ค.

์ž…๋ ฅ

์ž…๋ ฅ์˜ ์ฒซ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ž์—ฐ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๋ณ„๋กœ ์ฒซ ์ค„์—๋Š” ๋‚ ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ž์—ฐ์ˆ˜ N(2 ≤ N ≤ 1,000,000)์ด ์ฃผ์–ด์ง€๊ณ , ๋‘˜์งธ ์ค„์—๋Š” ๋‚  ๋ณ„ ์ฃผ๊ฐ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” N๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋“ค์ด ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ๋‚  ๋ณ„ ์ฃผ๊ฐ€๋Š” 10,000์ดํ•˜๋‹ค.

์ถœ๋ ฅ

๊ฐ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๋ณ„๋กœ ์ตœ๋Œ€ ์ด์ต์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ ํ•˜๋‚˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋‹ต์€ ๋ถ€ํ˜ธ์žˆ๋Š” 64bit ์ •์ˆ˜ํ˜•์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

ํ’€์ด

// Authored by : seondal
// Co-authored by : -

// #include <bits/stdc++.h>
#include <iostream>
#include <vector>

using namespace std;

int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    
    int t;
    cin >> t;
    while(t--) {
        int n;
        cin >> n;
        vector<int> v(n);
        for(int i=0; i<n; i++)
            cin >> v[i];
        
        int cur=0;
        long long money=0;
        for(int i=n-1; i>=0; i--) {
            if(v[i] > cur) {
                cur = v[i];
            } else {
                money += cur - v[i];
            }
        }
        cout << money << "\n";
    }
    
    return 0;
}

/*
 */
๋ฐ˜์‘ํ˜•