알고리즘/SWEA
[SWEA D3] 1206. [S/W 문제해결 기본] 1일차 - View, Python 풀이
KeyDi
2022. 12. 20. 20:08
728x90
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
#건물의 좌,우 높이 비교
#해당 건물당, 2이상 널널하면 조망권 count
for tc in range(1, 11):
N = int(input()) #건물의 갯수
heights = list(map(int, input().split())) #건물들 높이
answer = 0 #조망권 확보된 세대 카운트
#모든 건물 경우에 대해서,
for i in range(2, N-2):
left = 0
right =0
#해당 빌딩 왼쪽 두칸 비교 (해당 빌딩보다 작은만큼 조망권 확보)
#왼쪽의 건물 두채중에 큰거 고름 -> 해당 빌딩에서 값 빼기 -> 왼쪽 조망권 확보된 세대
if heights[i] >= heights[i-1] >= heights[i-2]:
left = heights[i] - heights[i-1]
if heights[i] >= heights[i-2] > heights[i-1]:
left = heights[i] - heights[i-2]
#오른쪽 두칸 비교
#오른쪽 건물 두채중에 큰거 고름 -> 해당 빌딩에서 값 빼기 -> 오른쪽 조망권 확보된 세대
if heights[i] >= heights[i + 1] >= heights[i + 2]:
right = heights[i] - heights[i + 1]
if heights[i] >= heights[i + 2] > heights[i + 1]:
right = heights[i] - heights[i + 2]
#왼쪽, 오른쪽 조망권 확보된 세대중에 더 작은거 고르기
if left < right:
answer += left
else:
answer += right
print(f"#{tc}", answer)
728x90
반응형