Problem Solving/LeetCode
Today's Challenge
fabichoi
2022. 5. 25. 23:45
https://leetcode.com/problems/russian-doll-envelopes/
Russian Doll Envelopes - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
단순 x, y 값 비교만 하면 되는 줄 알았는데.. 결국 LIS 문제였구만 ㅠㅠ
그래도 BOJ에서 LIS는 티어가 낮은 편인데 여기선 꽤 높군.
bi_sect를 사용하는 건 처음 봄.
class Solution:
def maxEnvelopes(self, envelopes: List[List[int]]) -> int:
envelopes.sort(key=lambda x: (x[0], -x[1]))
res = []
for i, e in enumerate(envelopes):
idx = bisect_left(res, e[1])
if idx == len(res):
res.append(e[1])
else:
res[idx]=e[1]
return len(res)
반응형