https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh
2중 for 문으로 돌면서 왼쪽 옆 2개, 오른쪽 옆 2개를 확인해주면 되는 문제였다
<전체 풀이>
T = 10 #int(input())
for tc in range(1, T+1):
N = int(input())
arr = list(map(int, input().split()))
cnt = 0 # 조망권 수
for i in range(2, N-2): # 조망권 확인 위치
# h = max(arr[i-2], arr[i-1], arr[i+1], arr[i+2])
h = 0
for j in range(i-2, i+3): # 주변 4개중 최대높이
if i!=j:
if h < arr[j]:
h = arr[j]
if arr[i]>h: # 주변 4개보다 기준위치가 높으면
cnt += arr[i]-h # 높이차이만큼 조망권 확보
print(f'#{tc} {cnt}')
'파이썬 알고리즘' 카테고리의 다른 글
[파이썬] 프로그래머스 lvl2. 영어 끝말잇기 (1) | 2023.03.07 |
---|---|
[파이썬] SWEA 파스칼의 삼각형 (0) | 2022.12.07 |
[파이썬] SW 문제해결 기본 5일차 - Magnetic (0) | 2022.12.07 |
[파이썬] 백준 15649 N과 M (1) (0) | 2022.12.06 |
[파이썬] 백준 11047 동전 0 (0) | 2022.12.06 |