https://leetcode.com/problems/search-suggestions-system/

이 문제는 주어진 제품 목록에서 주어진 검색어에 대한 제안을 반환하는 것으로, 각 검색어 접두사에 대해 최대 세 개의 제안을 만들어야 합니다.
from bisect import bisect_left,bisect_right
class Solution:
def suggestedProducts(self, products: List[str], searchWord: str) -> List[List[str]]:
ans=[]
products.sort()
for i in range(1,len(searchWord)+1):
index = bisect_left(products, searchWord[0:i])
max_index=bisect_right(products,searchWord[0:i]+ chr(ord('z') + 1))
ans.append(products[index:min(index+3,max_index)])
return ans

주어진 products를 정렬 후 이진탐색을 각각 좌우로 수행하여 추천범위를 확정하여 ans배열에 누적하면서 값을 return한다.