#include <iostream>
#include <algorithm>
using namespace std;
FILE* stream;
int N;
#define MAX_N 1000
int input[MAX_N];
int fnSolve() {
int Ret = 0;
for (int i = 2; i < N - 2; i++) {
int Max = 0;
int Min = 987654321;
for (int j = i - 2; j <= i + 2; j++) {
Max = max(Max, input[j]);
}
if (input[i] == Max) {
Min = min(Min, input[i] - input[i - 2]);
Min = min(Min, input[i] - input[i - 1]);
Min = min(Min, input[i] - input[i + 2]);
Min = min(Min, input[i] - input[i + 1]);
Ret += Min;
}
}
return Ret;
}
int main(void) {
freopen_s(&stream, "input.txt", "r", stdin);
for (int t = 1; t <= 10; t++) {
cin >> N;
for (int i = 0; i < N; i++) {
cin >> input[i];
}
cout << "#" << t << " " << fnSolve() << endl;
}
}
'알고리즘 트레이닝 > SW Expert Academy' 카테고리의 다른 글
9839. 최고의 쌍 (0) | 2020.05.02 |
---|---|
8676. 동현이와 한결이는 아이돌 (0) | 2019.11.06 |
8821. 적고 지우기 (0) | 2019.11.01 |
8658. Summation (0) | 2019.10.09 |
1204. [S/W 문제해결 기본] 1일차 - 최빈수 구하기 (0) | 2019.09.16 |
#include <iostream>
#include <algorithm>
using namespace std;
FILE* stream;
int N;
#define MAX_N 1000
int input[MAX_N];
int fnSolve() {
int Ret = 0;
for (int i = 2; i < N - 2; i++) {
int Max = 0;
int Min = 987654321;
for (int j = i - 2; j <= i + 2; j++) {
Max = max(Max, input[j]);
}
if (input[i] == Max) {
Min = min(Min, input[i] - input[i - 2]);
Min = min(Min, input[i] - input[i - 1]);
Min = min(Min, input[i] - input[i + 2]);
Min = min(Min, input[i] - input[i + 1]);
Ret += Min;
}
}
return Ret;
}
int main(void) {
freopen_s(&stream, "input.txt", "r", stdin);
for (int t = 1; t <= 10; t++) {
cin >> N;
for (int i = 0; i < N; i++) {
cin >> input[i];
}
cout << "#" << t << " " << fnSolve() << endl;
}
}
'알고리즘 트레이닝 > SW Expert Academy' 카테고리의 다른 글
9839. 최고의 쌍 (0) | 2020.05.02 |
---|---|
8676. 동현이와 한결이는 아이돌 (0) | 2019.11.06 |
8821. 적고 지우기 (0) | 2019.11.01 |
8658. Summation (0) | 2019.10.09 |
1204. [S/W 문제해결 기본] 1일차 - 최빈수 구하기 (0) | 2019.09.16 |