1206. [S/W 문제해결 기본] 1일차 - View
간단한 구현 문제였다.
어렵게 생각할 필요 없이 가로 길이가 최대 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}")
Author And Source
이 문제에 관하여(1206. [S/W 문제해결 기본] 1일차 - View), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wook2pp/1206.-SW-문제해결-기본-1일차-View저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)