Computer Science/Algorithm

[리트코드]1762. Buildings With an Ocean View

suleesulee 2021. 9. 2. 22:12
class Solution:
    def findBuildings(self, heights: List[int]) -> List[int]:
        stck = []
        #비어있으면 넣고
        #다음에 들어온게 더 크면 넣고 작으면 넣지 않는다.
        
        
        stck.append((heights[-1], len(heights)-1))
        for i in range(len(heights)-1, -1, -1):
            if stck[-1][0] < heights[i]:
                stck.append((heights[i], i))
            
        stck.sort(key = lambda x : x[1])
        #print(stck)
        
        ans = []
        for i in range(len(stck)):
            ans.append(stck[i][1])
            
        return ans

 

미디움이라고 되어있지만 조금 쉬운 문제

이중포문으로는 풀수 없음 입력 때문에

 

배운것

1. 파이썬 for문에서 거꾸로 돌리는 방법이 헷깔렸는데 확실히 기억하자

2. 람다를 이용한 정렬 또한 자주나오니 기억하자

 

다른 풀이보니깐

reversed(range(len(heights))) 

for i, x in enumerate(heights)

사용했었다.