간단한 구현 문제였다.
어렵게 생각할 필요 없이 가로 길이가 최대 1000이기 때문에 하나씩 다 확인한다고 하더라고 연산시간이 얼마 걸리지 않겠다라고 생각했다.
각 건물마다 좌우 2칸씩 확인하여서, 선택한 빌딩보다 큰 건물이 있다면 조망권이 없는 것이고, 해당 건물이 제일 크다면 왼쪽과 오른쪽 중에 제일 큰 빌딩의 길이를 빼주어 더하면 된다.
for _ in range(10):
n = int(input())
arr = list(map(int,input().split()))
ans = 0
for i in range(2,n-2):
a = arr[i-2]
b = arr[i-1]
c = arr[i+1]
d = arr[i+2]
if max(a,b,c,d) >= arr[i]:
continue
l = max(a,b)
r = max(c,d)
ans += min(arr[i]-l,arr[i]-r)
print(f"#{_+1} {ans}")