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)
사용했었다.