📌문제
https://www.acmicpc.net/problem/11501
🎖️난이도
✔️풀이
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <algorithm>
#include <stack>
#include <queue>
#include <cstring>
#include <string>
#include <math.h>
#include <tuple>
#include <typeinfo> // operator typeid
using namespace std;
int T(0);
int N(0);
long long solution(vector<int> day) {
long long answer(0);
long long max_val = *max_element(day.begin(), day.end());
long long max_index(0);
for (int i = 0; i < N; i++) {
if (max_val == day[i] && i != N - 1) {
max_val = *max_element(day.begin() + i + 1, day.end());
continue;
}
else {
answer += max_val - day[i];
}
}
return answer;
}
int main(void) {
cin >> T;
for (int i = 0; i < T; i++) {
cin >> N;
vector<int> day(N);
int sum(0);
for (int j = 0; j < N; j++) {
cin >> day[j];
}
for (int k = 0; k < N; k++) {
sum += day[k];
}
if (day[0] * N == sum) { cout << 0 << endl; }
else { cout << solution(day) << endl; }
}
return 0;
}
'[ 알고리즘 ] > Greedy' 카테고리의 다른 글
[프로그래머스] 단속카메라 (0) | 2022.06.29 |
---|---|
[프로그래머스] 구명보트 (0) | 2022.06.29 |
[프로그래머스] 큰 수 만들기 (0) | 2022.06.29 |
[프로그래머스] 체육복 (0) | 2022.06.29 |
[백준] 11497. 통나무 건너뛰기 (0) | 2022.06.29 |