Development/Algorithm

[SWEA] 1859. 백만 장자 프로젝트

동스토리 2020. 9. 23. 18:54
반응형

문제

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5LrsUaDxcDFAXc&categoryId=AV5LrsUaDxcDFAXc&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


 

해설

마지막 수부터 하나씩 내려오면서 비교하여 이익 값을 구한다


코드

#include<iostream>

using namespace std;
int m[1000001];

int main() {

	int testcase;
	cin >> testcase;
	int n;
	int max;
	for (int i = 0; i < testcase; i++) {
		long long sum = 0;
		cin >> n;
		for (int j = 0; j < n; j++) cin >> m[j];
		max = m[n - 1];
		for (int k = n - 2; k >= 0; k--) {
			if (m[k] > max) max = m[k];
			else sum += max - m[k];
		}
		cout <<"#"<<i+1<<" "<< sum<<'\n';
		
	}

}

 

반응형