좌우 모두 2칸 이상 차이가 나야함
제일 높은 층과의 차이 값을 찾아야하므로 두 값의 차의 최소값을 구해야함! 착각해서 최대로 더했었음 ㅎ,,
int[] arr; //크기 할당, 초기화 없이 배열 변수만 선언
int[] arr = new int[5]; //배열 선언, 크기 할당
int [] arr;
arr = new int[5]; //5의 크기인 배열을 0으로 초기화
int[] arr = {1,2,3,4,5}; //배열 선언,크기지정,초기화
import java.util.Scanner;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T;
T=10; //테스트케이스 개수
int[] arr;
for(int test_case = 1; test_case <= T; test_case++)
{
int n = sc.nextInt(); //가로 길이
arr = new int[n]; //n만큼 배열생성
int floor = 0;
for(int i=0; i<arr.length; i++){
arr[i]=sc.nextInt(); //배열에 값 넣기
//System.out.print(arr[i]+" ");
}
for(int i=0; i<n; i++){
if( i>1 && i<n-2) { //왼쪽 2, 오른쪽 2 제외
//if(arr[i]>arr[i+1] && arr[i]>arr[i+2] && arr[i]>arr[i-1] && arr[i]>arr[i-2]) b_num++;
int a= arr[i]-arr[i+1];
int b= arr[i]-arr[i+2];
int c= arr[i]-arr[i-1];
int d= arr[i]-arr[i-2];
if(a>0&&b>0&&c>0&&d>0){ //모든 경우에 다 해당할 때
int[] arr2= {a,b,c,d}; //각 층 수의 차이를 배열에 넣어줌
int min = arr2[0];
for(int j=0; j<4; j++){
if(arr2[j]<min) min=arr2[j]; //제일 적게 차이나는 층수 찾기
}
floor += min;
}
}
}
System.out.println("#"+test_case+" "+floor);
}
}
}