mun dev

[SWEA] D3 1206 View 자바(Java) 본문

알고리즘/SWEA

[SWEA] D3 1206 View 자바(Java)

mndev 2023. 11. 14. 15:46

문제 링크

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

풀이

문제 조건을 잘 읽고 Math.max 사용해서 풀이하니 금방 풀 수 있었던 문제 같다. 

좌우 각 2개 총 4개의 빌딩 중 가장 큰 빌딩 크기를 구한 다음 현재 빌딩에서 빼서 더해준다.

 

풀이 코드

import java.io.*;
import java.util.*;

public class Test {
	public static int n, result=0;
	public static int arr[];

	public static void main(String[] args) throws NumberFormatException, IOException {
		Scanner sc = new Scanner(System.in);
		int T=10;

		for(int test_case = 1; test_case <= T; test_case++){
		n =sc.nextInt();
		arr=new int[n];
		result=0;	

		for(int i=0; i<n; i++) {
			arr[i]=sc.nextInt();
		}
		cntBuilding(test_case,arr);
	}
}
	
	public static void cntBuilding(int testCase, int arr[]) {
		for(int i=2; i<n; i++) {
			if(arr[i-1]<arr[i] && arr[i-2]< arr[i] && arr[i+1]<arr[i] && arr[i+2]<arr[i]) {	
				int max=Math.max(arr[i+2],Math.max(arr[i+1],Math.max(arr[i-1], arr[i-2])));
				max=arr[i]-max;
				result+=max;
			}
		}
		System.out.println("#"+testCase+" "+result);
	}

}