반응형

문제

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';
		
	}

}

 

반응형

'Development > Algorithm' 카테고리의 다른 글

[프로그래머스] 완주하지 못한 선수  (0) 2020.09.23
[BOJ] 1260. DFS와 BFS  (0) 2020.09.23
[BOJ] 11057. 오르막수  (0) 2020.09.22
[BOJ] 10844. 쉬운 계단 수  (0) 2020.09.20
[BOJ] 9095. 1, 2, 3 더하기  (0) 2020.09.20