View_1206

heyryu·2022년 5월 25일
0

SWEA

목록 보기
6/7

좌우 모두 2칸 이상 차이가 나야함
제일 높은 층과의 차이 값을 찾아야하므로 두 값의 차의 최소값을 구해야함! 착각해서 최대로 더했었음 ㅎ,,

배열 선언

int[] arr;	//크기 할당, 초기화 없이 배열 변수만 선언

int[] arr = new int[5];	//배열 선언, 크기 할당

int [] arr;
arr = new int[5];	//5의 크기인 배열을 0으로 초기화

int[] arr = {1,2,3,4,5};	//배열 선언,크기지정,초기화

SWEA Code

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);
		}
	}
}
profile
못하면 열심히 하는 게 당연하니까💪 [Frontend/서비스기획]

0개의 댓글