반응형
이 문제는 예전에 최대 건물 높이 중에서 최소값이 빗물이 담길 수 있는 최대 값이라고 했었다.
하지만 그렇게 하면 O(n^2)의 시간복잡도를 가지는데...
이를 해결하려면 최대 건물 높이를 미리 알아놓으면 좋을 것 같다.
def trapping_rain(buildings):
container = 0
left = []
right = []
for i in range(len(buildings)):
left.append(max(buildings[:i+1]))
right.append(max(buildings[i:]))
for i in range(len(buildings)):
container += (min(left[i], right[i]) - buildings[i])
return container
2021-11-20
반응형
'알고리즘 > 문제 풀이' 카테고리의 다른 글
2021-11-30 Bronze "2789" 반영환 (0) | 2021.11.30 |
---|---|
2021-11-28 Bronze "2231" 반영환 (0) | 2021.11.28 |
2021-11-20 리스트 항목 합 탐색 (0) | 2021.11.20 |
2021-11-20 출근하는 방법 (0) | 2021.11.20 |
2021-11-20 주식 최대 수익 구하기 (0) | 2021.11.20 |