경험의 기록

문제 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh 

 

SW Expert Academy

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

swexpertacademy.com

 

풀이

import java.util.Scanner;
import java.io.FileInputStream;

class Solution
{
    public static void main(String args[]) throws Exception
    {
        Scanner sc = new Scanner(System.in);

        for(int test_case = 1; test_case <= 10; test_case++)
        {
            int n = sc.nextInt(); // 테스트 케이스 길이
            int[] arr = new int[n]; // 빌딩 정보
            int sum = 0; // 세대 수 합계

            // 정보 입력
            for(int i =0; i<n; i++){
                arr[i] = sc.nextInt();
            }

            for(int i=2; i<n-2; i++){
                int max = 0;
                max = Math.max(arr[i-2],arr[i-1]);
                max = Math.max(max,arr[i+1]);
                max = Math.max(max,arr[i+2]);
                // 조망권 확보
                if(max < arr[i]){
                    sum += (arr[i] - max);   
                }
            }

            System.out.println("#"+test_case+" "+sum);
        }
    }
}

조망권이 확보되었는지를 알기위해서는

현재 빌딩의 높이에서 좌우 2칸 내에 있는 빌딩의 최대 높이를 빼면 된다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading