코테풀이/SW Expert Academy

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

miimu 2025. 11. 17. 00:32

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh

 

SW Expert Academy

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

swexpertacademy.com

 

for idx in range(2, N-2) 내에서, idx를 중심으로 2칸 내외의 건물들의 높이 수집

 

조망권 세대는 현재 건물(idx)과 2칸 내외([idx-2, idx+2]) 중 가장 큰 건물 차이로 결정됨

이 때, 조망권 세대는 (현재 건물 - 2칸 내외 중 가장 큰 건물)의 차이가 양수일 경우 더하도록 함

 

for t in range(10) : # 테스트 케이스 10개
    N = int(input())
    b = list(map(int, input().split()))
    
    ans = 0
    for idx in range(2, N-2) :
        now = b[idx]
        next = [b[idx - 2], b[idx - 1], b[idx + 1], b[idx + 2]]
        
        a = now - max(next)
        if a > 0 :
            ans += a
            
    print(f'#{t+1} {ans}')

 

뭔가 알고리즘은 쉬운 느낌이었는데 처음 짠 코드가 제출 케이스 10개 중 9개만 맞아서 고민하는데 시간이 오래걸렸다.

 

스위핑 알고리즘인듯?

 

 

 

'코테풀이 > SW Expert Academy' 카테고리의 다른 글

22979. 문자열 옮기기  (0) 2025.11.18
25469. 페인트칠  (0) 2025.11.18
25655. 유치원생은 쉽게 푸는 문제  (0) 2025.11.17
1954. 달팽이 숫자문제  (0) 2025.11.17
2072. 홀수만 더하기  (0) 2025.11.16