데브허브 | DEVHUB | Buildings With an Ocean View - Leetcode 1762 - PythonBuildings With an Ocean View - Leetcode 1762 - Python
- 문제: 건물 높이 배열에서 바다(오른쪽)를 볼 수 있는 건물의 인덱스를 오름차순으로 반환합니다. 🌊
- 조망 조건: 건물 오른쪽에 더 높거나 같은 건물이 없어야 바다 조망이 가능하며, 가장 오른쪽 건물은 항상 조망이 가능합니다. 🔭
- 결과 특성: 바다 조망 건물들의 높이는 항상 엄격하게 감소하는 순서입니다. 📉
- 최적 접근: 배열을 오른쪽에서 왼쪽으로 순회하는 그리디 방식이 효율적입니다. ⬅️
- 알고리즘:
- 가장 오른쪽 건물 인덱스를 결과에 추가합니다. ➕
- 역순으로 순회하며, 현재 건물이 이전에 추가된 건물(현재까지 가장 높은 조망 가능 건물)보다 엄격히 높으면 인덱스를 추가하고 최대 높이를 갱신합니다. ⬆️
- 최종적으로 결과 리스트를 뒤집어 오름차순 인덱스를 얻습니다. 🔄
- 복잡도: 시간 O(N), 공간 O(N) (결과 저장 포함). ⏱️
- 구현 팁: Python의
range(len-2, -1, -1)로 역순 순회하고 result[-1]로 마지막 추가된 건물 높이를 참조합니다. 🐍