We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 0d434d6 commit 9178846Copy full SHA for 9178846
minjeong/DynamicProgramming/2025-01-07-[PGS]-단어퍼즐.py
@@ -0,0 +1,18 @@
1
+def solution(strs, t):
2
+ n = len(t)
3
+ dp = [1e9] * (n + 1) # 1e9는 불가능한 경우를 의미
4
+ dp[0] = 0 # 초기값 설정: 시작점은 0
5
+
6
+ # strs를 set으로 변환해 빠르게 포함 여부 확인
7
+ str_set = set(strs)
8
9
+ # DP 진행
10
+ for i in range(1, n + 1):
11
+ # 최대 5글자까지 확인
12
+ for j in range(1, 6):
13
+ if i - j >= 0 and t[i - j:i] in str_set:
14
+ # 현재 위치를 j 길이만큼 뒤로 가서 비교
15
+ dp[i] = min(dp[i], dp[i - j] + 1)
16
17
+ # 결과 반환: 완성 가능하면 dp[n], 불가능하면 -1
18
+ return dp[n] if dp[n] != 1e9 else -1
0 commit comments