본문 바로가기
ALGORITHM/SW Expert Academy

[SWEA/Python] 1206. View

by 안녕나는현서 2021. 8. 13.
728x90

📌 문제

https://swexpertacademy.com/main/main.do

 

SW Expert Academy

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

swexpertacademy.com

 

📌 문제 접근 방법

  1. i를 기준으로 양 옆 2개를 포함한 5개를 리스트에 넣는다.
  2. 리스트 안에서 가장 값이 큰(높은) 수에서 두 번째로 큰 수를 빼면 조망권
  3. i를 계속 바꿔가면서 조망권을 더한다.
  4. 각각 양쪽 2칸씩은 공백이므로 범위는 range(2, N-2)

 

📌 코드

import sys

sys.stdin = open('input.txt')

for t in range(1, 11) :
    N = int(input())
    high = list(map(int, input().split()))
    result = 0

    for i in range(2, N-2) :
        temp = []
        temp.append(high[i-2])
        temp.append(high[i-1])
        temp.append(high[i])
        temp.append(high[i+1])
        temp.append(high[i+2])

        cnt = len(temp)-1
        while cnt :
            for j in range(cnt) :
                if temp[j] > temp[j+1] :
                    temp[j], temp[j+1] = temp[j+1], temp[j]
            cnt -= 1

        if temp[-1] == high[i] :
            result += temp[-1] - temp[-2]

    print(f'#{t} {result}')
728x90

댓글