seungriyou / algorithm-study

알고리즘 & SQL 문제 풀이 기록
https://leetcode.com/u/summer_y
0 stars 0 forks source link

[LC] 139. Word Break #67

Open seungriyou opened 6 months ago

seungriyou commented 6 months ago

https://leetcode.com/problems/word-break/

Approach

어려워서 solution 참고 ㅎㅎ editorial도 참고하자.. ㅠ (BFS 풀이 방법도 있음)

Idea 1: DP

뒤에서부터 확인해가며 결과를 완성하는 방향으로 접근한다. (dp 테이블을 채워나갈 때 어디서부터 채워나가야 할지 잘 생각해보자!)


Idea 2: DP + Trie

bottom-up 방식 DP에 trie를 적용해보자.

모든 word를 trie로 구축하여 사용하면 s[start:end]wordDict에 존재하는지 확인하는 과정O(1)으로 최적화 할 수 있다.

하지만 실제로 제출했을 때 딱히 runtime이 유의미하게 줄어드는 것 같지는 않다..?

이유가 뭐지? t(= wordDict 내 모든 문자 개수)가 너무 커서일까?


Complexity