문제

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5LrsUaDxcDFAXc 

 

SW Expert Academy

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

swexpertacademy.com


풀이

구현문제이긴 하나, 자료형의 범위와 시간복잡도를 고려해야하는 문제다.

MAX_ELEMENT 또한 결국 시간복잡도를 많이 먹는 함수라 그냥 반복문 한번으로 돌릴 방법을 고민하면 된다.


소스 코드

#include<iostream>

using namespace std;

int arr[1000001], N;

int main(int argc, char** argv)
{
	int test_case;
	int T;

	cin>>T;

	for(test_case = 1; test_case <= T; ++test_case)
	{
		int max = 0;
		long long sum = 0;

		cin >> N;
		for (int i = 1; i <= N; i++) {
			cin >> arr[i];
		}
		
		max = arr[N];

		for (int i = N - 1; i > 0; i--) {
			if (max < arr[i]) {
				max = arr[i];
			}
			else {
				sum += max - arr[i];
			}
		}

		cout << "#" << test_case << " " << sum << '\n';
	}
	return 0;
}

'Programming Practice > SWEA' 카테고리의 다른 글

[SWEA] 1249. 보급로 - D4  (0) 2022.05.10
[SWEA] 1954. 달팽이 - D2  (0) 2022.05.10
[SWEA] 1244. 최대 상금 - D3  (0) 2022.05.03
[SWEA] 1206. View - D3  (0) 2022.05.02
[SWEA] 1204. 최빈수 구하기 - D2  (0) 2022.05.02

+ Recent posts