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);
}
}
}
'알고리즘' 카테고리의 다른 글
[Java] 백준 14503번 로봇 청소기 (0) | 2023.01.17 |
---|---|
[Java] 백준 14888번 연산자 끼워넣기 (0) | 2023.01.17 |
[JavaScript] 프로그래머스 - 귤 고르기 (0) | 2023.01.16 |
[C++] 백준 14889번 스타트와 링크 (0) | 2023.01.15 |
[Java] SWEA - 평행사변형 (0) | 2023.01.14 |