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)
사용했었다.
'Computer Science > Algorithm' 카테고리의 다른 글
[리트코드]1002. Find Common Characters (0) | 2021.09.06 |
---|---|
[리트코드]740. Delete and Earn (0) | 2021.09.03 |
[리트코드]18. 4Sum (0) | 2021.09.03 |
[리트코드]16. 3Sum Closest (0) | 2021.09.03 |
leetcode 5.Longest Palindromic Substring (0) | 2021.02.24 |