문제
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
풀이
앞뒤로 두칸이내에 빌딩이 없어야 조망권을 획득 할 수 있다.
이는 즉, 앞뒤로 두칸이내의 빌딩과 현재 빌딩의 차이의 최소값이 현재 빌딩의 조망권이 된다.
코드
import java.util.*;
import java.io.*;
public class Solution {
public static void main (String[] args) throws java.lang.Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
for(int task = 0; task < 10; task++) {
int n = Integer.parseInt(br.readLine());
int arr [] = new int[n];
st = new StringTokenizer(br.readLine());
for(int i=0;i<n;i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
int result = 0;
for(int i=2;i<n-2;i++) {
int count = arr[i] - Math.max(Math.max(arr[i-1], arr[i-2]), Math.max(arr[i+1], arr[i+2]));
if(count < 0) count = 0;
result += count;
}
sb.append("#"+(task+1)+" "+result+"\n");
}
System.out.print(sb);
}
}