import java.util.*;
import java.io.*;
class Solution {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
for (int t = 0; t < 10; t++) {
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
// 입력
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
// 계산
int ret = 0;
for (int i = 2; i < N - 2; i++) {
int left = Math.max(arr[i - 1], arr[i - 2]);
int right = Math.max(arr[i + 1], arr[i + 2]);
int sub = Math.max(left, right);
if (arr[i] > sub) {
ret += (arr[i] - sub);
}
}
sb.append(String.format("#%d %d\n", t + 1, ret));
}
System.out.println(sb);
}
}
N + 4
만큼 공간을 확보해야 됐을 것이다.제약 사항
에서 보이다시피, 맨 왼쪽 두 칸과 맨 오른쪽 두 칸은 0으로 채워져있다.2 ~ N-2
범위를 for문으로 순회하며 왼쪽 두 칸과 오른쪽 두 칸중에 가장 큰 값을 구해 현재 값에서 빼주면 된다.