끄적끄적 코딩
article thumbnail
Published 2023. 1. 16. 21:28
[Java] SWEA - View 알고리즘
728x90

빌딩의 왼쪽 2건물과 오른쪽 2건물에 공간이 없는 층들을 조망권이라고 할 때
조망권에 해당하는 세대 수를 찾는 문제입니다.

모든 건물을 확인하고 각 건물의 왼쪽 2건물과 오른쪽 2건물이 해당 건물보다 작은지 확인 한 후
더 작을 경우 4개의 건물 중 가장 큰 값을 현재 건물에 뺀 값을 결과값에 더하는 식으로 답을 도출했습니다. 

import java.util.Scanner;
import java.io.FileInputStream;
 
class Solution
{
    public static void main(String args[]) throws Exception
    {
        Scanner sc = new Scanner(System.in);
        int T = 10;
 
        for(int test_case = 1; test_case <= T; test_case++)
        {
            int n;
            int answer = 0;
            int left, right;
            int[] arr = new int[1000];
             
            n = sc.nextInt();
             
            for(int i=0; i<n; ++i){
                arr[i] = sc.nextInt();
            }
            for(int i=2; i<n-2; ++i){
                if(arr[i] > arr[i-1] && arr[i] > arr[i-2]){
                    left = Math.max(arr[i-1], arr[i-2]);   
                } else {
                    continue;
                }
                if(arr[i] > arr[i+1] && arr[i] > arr[i+2]){
                    right = Math.max(arr[i+1], arr[i+2]);   
                } else {
                    continue;
                }
                answer += arr[i] - Math.max(left, right);
            }
            System.out.printf("#%d %d%n", test_case, answer);
        }
    }
}

 

검색 태그