๊ธ€ ์ž‘์„ฑ์ž: ๊ฐœ๋ฐœํ•˜๋Š” ํ›ˆ์ด

๋ฌธ์ œ

https://programmers.co.kr/learn/courses/30/lessons/12905

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ฐ€์žฅ ํฐ ์ •์‚ฌ๊ฐํ˜• ์ฐพ๊ธฐ

[[0,1,1,1],[1,1,1,1],[1,1,1,1],[0,0,1,0]] 9

programmers.co.kr

1์™€ 0๋กœ ์ฑ„์›Œ์ง„ ํ‘œ(board)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ 1์นธ์€ 1 x 1 ์˜ ์ •์‚ฌ๊ฐํ˜•์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ์—์„œ 1๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฐ€์žฅ ํฐ ์ •์‚ฌ๊ฐํ˜•์„ ์ฐพ์•„ ๋„“์ด๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”. (๋‹จ, ์ •์‚ฌ๊ฐํ˜•์ด๋ž€ ์ถ•์— ํ‰ํ–‰ํ•œ ์ •์‚ฌ๊ฐํ˜•์„ ๋งํ•ฉ๋‹ˆ๋‹ค.)

์˜ˆ๋ฅผ ๋“ค์–ด

0 1 1 1
1 1 1 1
1 1 1 1
0 0 1 0

๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ฐ€์žฅ ํฐ ์ •์‚ฌ๊ฐํ˜•์€

0 1 1 1
1 1 1 1
1 1 1 1
0 0 1 0

๊ฐ€ ๋˜๋ฉฐ ๋„“์ด๋Š” 9๊ฐ€ ๋˜๋ฏ€๋กœ 9๋ฅผ ๋ฐ˜ํ™˜ํ•ด ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ํ’€์ด

๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. 

 

dp ๋ฐฐ์—ด์€ ์ดˆ๊ธฐ์—๋Š” ์ฃผ์–ด์ง„ ๋ฐฐ์—ด๊ณผ ์ผ์น˜ํ•˜๊ณ  dp ๋ฐฐ์—ด์—๋Š” ํ•ด๋‹น ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ •์‚ฌ๊ฐํ˜•์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ •์‚ฌ๊ฐํ˜•์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๊ฐœ์ˆ˜๋ฅผ ํŒ๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

  1. board ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ ์œ„์น˜๋ฅผ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
    1. ํ˜„์žฌ ์œ„์น˜์˜ ๊ฐ’์ด 0์ด๋ผ๋ฉด ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š๊ณ  ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.
    2. ํ˜„์žฌ ์œ„์น˜์˜ ๊ฐ’์ด 1์ด๋ผ๋ฉด ์ตœ์†Œ ํ•œ ๊ฐœ์˜ ์ •์‚ฌ๊ฐํ˜•์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ํ˜„์žฌ ์œ„์น˜์˜ ๊ฐ’์ด 1์ผ ๋•Œ, ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ •์‚ฌ๊ฐํ˜•์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ dp ๋ฐฐ์—ด์—์„œ ์ž์‹ ์˜ ์ขŒ์ธก, ์šฐ์ธก, ์ขŒ์ธก ๋Œ€๊ฐ์„  ๋ฐฉํ–ฅ์˜ ๊ฐ’์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. board ๋ฐฐ์—ด์„ ๊ฐ ํ–‰์„ ์ด๋™ํ•˜๋ฉด์„œ ์ˆœํšŒํ•˜๊ธฐ ๋•Œ๋ฌธ์— dp ๋ฐฐ์—ด์˜ ์ขŒ์ธก, ์šฐ์ธก, ์ขŒ์ธก ๋Œ€๊ฐ์„ ์—๋Š” ํ•ด๋‹น ์œ„์น˜๋กœ๋ถ€ํ„ฐ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ •์‚ฌ๊ฐํ˜•์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ๋”ฐ๋ผ์„œ ํ˜„์žฌ ์œ„์น˜์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ •์‚ฌ๊ฐํ˜•์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋Š”  ์ขŒ์ธก, ์šฐ์ธก, ์ขŒ์ธก ๋Œ€๊ฐ์„  ์— ์ €์žฅ๋œ ์ •์‚ฌ๊ฐํ˜•์˜ ๊ฐœ์ˆ˜ ์ค‘ ์ตœ์†Œ๊ฐ’์— 1์„ ๋”ํ•œ ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ขŒ์ธก, ์šฐ์ธก, ์ขŒ์ธก ๋Œ€๊ฐ์„  ๋ฐฉํ–ฅ์ด ๋ชจ๋‘ 1๋กœ ์ฑ„์›Œ์ ธ ์žˆ์–ด์•ผ ์ •์‚ฌ๊ฐํ˜•์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ฝ”๋“œ