Search

๊น€๋ฏผ์ง€

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
3600
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
def solution(strs, t): answer = 0 n=len(t) dp=[float('inf')]*(n+1) dp[0]=0 for i in range(1, n+1): for k in range(1, 6): if i<k : start = 0 else : start=i-k if t[start:i] in strs : dp[i]=min(dp[i], dp[i-k]+1) if dp[-1]==float('inf') : return -1 else : return dp[-1]
Python
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
dp[i]๋Š” ๋ฌธ์ž์—ด t์˜ index i ๊นŒ์ง€ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด์กฐ๊ฐ ์ค‘ ์ตœ์†Œ๊ฐœ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
1.
t์˜ ๊ธธ์ด+1๋งŒํผ์˜ dp ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ฐ€์žฅ ํฐ ์ˆ˜๋กœ ์ดˆ๊ธฐํ™” ์‹œ์ผœ์ค€๋‹ค.
2.
dp[0]์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™”์‹œํ‚จ๋‹ค.
3.
1๋ถ€ํ„ฐ n๊นŒ์ง€ dp ๋ฆฌ์ŠคํŠธ๋ฅผ ์ฑ„์›Œ๋‚˜๊ฐ„๋‹ค.
a.
strs์˜ ๋‹จ์–ด์กฐ๊ฐ์˜ ๊ธธ์ด๊ฐ€ 1์ด์ƒ 5์ดํ•˜์ด๋ฏ€๋กœ 1๋ถ€ํ„ฐ 5๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.
b.
i-k๋ถ€ํ„ฐ t์˜ ํ˜„์žฌ ์ธ๋ฑ์Šค๊นŒ์ง€์™€ ๋™์ผํ•œ ๋‹จ์–ด์กฐ๊ฐ์ด ์žˆ๋Š”์ง€ ํ™•์ธ์„ ํ•œ๋‹ค.
c.
์žˆ์œผ๋ฉด ํ˜„์žฌ dp ๊ฐ’๊ณผ dp[i-k]+1 ํ•œ ๊ฐ’์ค‘ ์ตœ์†Œ๊ฐ’์œผ๋กœ ๊ฐฑ์‹ ํ•œ๋‹ค.
4.
dp[-1](t๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ ๊ฐœ์ˆ˜)๊ฐ€ ์ฒ˜์Œ ์ดˆ๊ธฐ๊ฐ’์ด๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์•„๋‹ˆ๋ฉด ๋งŒ๋“ค์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ ๋‹จ์–ด ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
์˜ˆ์‹œ
strs : ["app","ap","p","l","e","ple","pp"]
t : "apple"
1.
i๊ฐ€ 1์ผ ๋•Œ โ€œaโ€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์—†์œผ๋ฏ€๋กœ dp[1]=โ€™infโ€™์ด๋‹ค.
2.
i๊ฐ€ 2์ผ ๋•Œ โ€œapโ€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ
a.
โ€œpโ€๋กœ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ dp[2]์™€ dp[1]+1(โ€™infโ€™) ์ค‘์— ์ตœ์†Œ ์ด๋ฏ€๋กœ dp[2]๋Š” ๊ฐฑ์‹ ๋˜์ง€ ์•Š๋Š”๋‹ค.
b.
โ€œapโ€๋กœ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ dp[2]์™€ dp[0]+1 ์ค‘์— ์ตœ์†Œ ์ด๋ฏ€๋กœ dp[2]=1
3.
i๊ฐ€ 3์ผ ๋•Œ โ€œappโ€์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ
a.
โ€œpโ€๋กœ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ๋Š” dp[3]๊ณผ dp[2]+1 ์ค‘์— ์ตœ์†Œ์ด๋ฏ€๋กœ dp[3]=2
b.
โ€œppโ€๋กœ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ๋Š” dp[3]๊ณผ dp[1]+1=โ€™infโ€™ ์ค‘์— ์ตœ์†Œ์ด๋ฏ€๋กœ ๊ฐฑ์‹ ๋˜์ง€ ์•Š๋Š”๋‹ค.
c.
โ€œappโ€๋กœ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ๋Š” dp[3]๊ณผ dp[0]+1 ์ค‘์— ์ตœ์†Œ์ด๋ฏ€๋กœ dp[3]=1
4.
i๊ฐ€ 4์ผ ๋•Œ โ€œapplโ€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ
a.
โ€œlโ€๋กœ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ dp[4]์™€ dp[3]+1 ์ค‘์— ์ตœ์†Œ์ด๋ฏ€๋กœ dp[4]=2
5.
i๊ฐ€ 5์ผ ๋•Œ โ€œappleโ€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ
a.
โ€œeโ€๋กœ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ dp[5]์™€ dp[4]+1 ์ค‘์— ์ตœ์†Œ์ด๋ฏ€๋กœ dp[5]=3
b.
โ€œpleโ€๋กœ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ dp[5]์™€ dp[2]+1 ์ค‘์— ์ตœ์†Œ์ด๋ฏ€๋กœ dp[5]=2