메뉴 닫기

[알고리즘]강변 조망권 구하는 문제

문제를 요약하면 강변에 건물이 늘어서 있는데,

좌/우 로 2칸씩 공간이 있어야 조망권이 확보 되었다고 판단합니다.

입력된 값들을 순서대로 빌딩의 층수라고 할때 조망권이 확보된 층수의 합을 구하는 문제입니다.

Greedy 알고리즘으로 첫번째 두번째를 Case를 계산하며 답을 찾는 수식 찾았습니다.

result = Min( a – Max( a-2 , a-1) , a – Max(a+1, a+2) ) if result > 0

시간 복잡도는 O(n) 인데 개선 가능한 방법을 고민중이나 찾지 못하겠습니다.

 

구글링했을때 나온 답보다는 이 코드가 나은거 같은데.. 좋은 코드 있으면 공유 부탁드립니다.

출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh&categoryId=AV134DPqAA8CFAYh&categoryType=CODE