# tc가 10개
for tc in range(1,11):
# tc의 길이
n = int(input())
# 빌딩의 높이
heights = list(map(int,input().split()))
# 조망권 확보 수
cnt = 0
# 확인 위치
idx = 2
# 마지막 오른쪽 2개는 0 0 이므로 확인 안 해도 됨
while idx < n-2:
# 왼쪽에 있는 것들보다 작으면 idx 한 칸 이동, 한 칸 오른쪽 옆에 있는 빌딩보다 작으면 한 칸 이동
if heights[idx] <= heights[idx-2] or heights[idx] <= heights[idx-1] or heights[idx] <= heights[idx+1]:
idx += 1
pass
# 두 칸 오른쪽 옆에 있는 빌딩보다 작으면 두 칸 이동
elif heights[idx] <= heights[idx+2]:
idx += 2
pass
# 조망권이 확보 된 경우
else:
# 조망권 확보 숫자 더해주기
cnt += heights[idx] - max(heights[idx-2], heights[idx-1], heights[idx+1], heights[idx+2])
# 오른쪽으로 3칸 이동
idx += 3
print('#{} {}'.format(tc,cnt))
그 외
문제 풀이를 위한 아이디어
1. 조망권이 확보 된 경우에는 오른쪽 3번째 칸으로 점프해도 됨
(현재 위치가 오른쪽 2번째 칸까지의 조망권을 방해할 것이기 때문)
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다
'코딩 문제해결 > 문제 풀이.SWEA' 카테고리의 다른 글
[SWEA 코딩] 새샘이와 세 소수 - PYTHON #5986 (0) | 2021.01.26 |
---|---|
[SWEA 코딩] S/W 문제해결 기본 회문1 - PYTHON #1215 (0) | 2021.01.24 |
[SWEA 코딩] 통역사 성경이 - PYTHON #7675 (0) | 2021.01.22 |
[SWEA 코딩] S/W 문제해결 기본 GNS - PYTHON #1221 (0) | 2021.01.20 |
[SWEA 코딩] 진기의 최고급 붕어빵 - PYTHON #1860 (0) | 2021.01.19 |