본문 바로가기

[SWEA] - Python

[SWEA] 1206 : [S/W 문제해결 기본] 1일차 - View python

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh&categoryId=AV134DPqAA8CFAYh&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

n을 입력받고 집의 높이들을 arr라는 리스트에 저장한다.

arr[0], arr[1], arr[n-2], arr[n-1]은 0이기 때문에

arr[2]부터 arr[n-3]까지 현 위치에서 -2, -1, +1, +2한 건물 중 높이가 최대인 걸 구한다.

현재 건물보다 낮다면 두 건물의 높이 차가 조망권을 확보한 세대 수가 되니 더해준다.

 

T = 10
for test_case in range(1, T + 1):
    n = int(input())
    arr = list(map(int,input().split()))
    res = 0
    for i in range(2, n-2):
        tmp = max(arr[i-2],arr[i-1],arr[i+1],arr[i+2])
        if tmp < arr[i]:
            res += arr[i]-tmp
    print("#%d"%test_case, res)