https://www.acmicpc.net/problem/11501
๋ฌธ์
ํ์ค์ด๋ ์์ฆ ์ฃผ์์ ๋น ์ ธ์๋ค. ๊ทธ๋ ๋ฏธ๋๋ฅผ ๋ด๋ค๋ณด๋ ๋์ด ๋ฐ์ด๋, ๋ ๋ณ๋ก ์ฃผ๊ฐ๋ฅผ ์์ํ๊ณ ์ธ์ ๋ ๊ทธ๊ฒ ๋ง์๋จ์ด์ง๋ค. ๋งค์ผ ๊ทธ๋ ์๋ ์ธ ๊ฐ์ง ์ค ํ ํ๋์ ํ๋ค.
- ์ฃผ์ ํ๋๋ฅผ ์ฐ๋ค.
- ์ํ๋ ๋งํผ ๊ฐ์ง๊ณ ์๋ ์ฃผ์์ ํ๋ค.
- ์๋ฌด๊ฒ๋ ์ํ๋ค.
ํ์ค์ด๋ ๋ฏธ๋๋ฅผ ์์ํ๋ ๋ฐ์ด๋ ์๋ชฉ์ ๊ฐ์ก์ง๋ง, ์ด๋ป๊ฒ ํด์ผ ์์ ์ด ์ต๋ ์ด์ต์ ์ป์ ์ ์๋์ง ๋ชจ๋ฅธ๋ค. ๋ฐ๋ผ์ ๋น์ ์๊ฒ ๋ ๋ณ๋ก ์ฃผ์์ ๊ฐ๊ฒฉ์ ์๋ ค์ฃผ์์ ๋, ์ต๋ ์ด์ต์ด ์ผ๋ง๋ ๋๋์ง ๊ณ์ฐ์ ํด๋ฌ๋ผ๊ณ ๋ถํํ๋ค.
์๋ฅผ ๋ค์ด ๋ ์๊ฐ 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;
}
/*
*/
'๐๏ธ ICPC Sinchon > Greedy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 16206๋ฒ: ๋กค์ผ์ดํฌ (0) | 2023.04.12 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 27112๋ฒ: ์๊ฐ ์ธ ๊ทผ๋ฌด ๋ฉ์ถฐ! (0) | 2023.02.01 |
[BOJ][C++] 20921๋ฒ: ๊ทธ๋ ๊ณ ๊ทธ๋ฐ ์ฌ์ด (0) | 2023.01.31 |
[BOJ][C++] ๋ฐฑ์ค 14659๋ฒ: ํ์กฐ์์ด์ ๋ฆฌํ๊ณ ์ดใ ใ (0) | 2023.01.31 |
[BOJ G4][C++] ๋ฐฑ์ค 1339๋ฒ: ๋จ์ด ์ํ (0) | 2022.10.11 |