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

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ฑฐ๋ฆฌ๋‘๊ธฐ ํ™•์ธํ•˜๊ธฐ

[["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1]

programmers.co.kr

๋ฌธ์ œ

๊ฐœ๋ฐœ์ž๋ฅผ ํฌ๋งํ•˜๋Š” ์ฃ ๋ฅด๋””๊ฐ€ ์นด์นด์˜ค์— ๋ฉด์ ‘์„ ๋ณด๋Ÿฌ ์™”์Šต๋‹ˆ๋‹ค.

์ฝ”๋กœ๋‚˜ ๋ฐ”์ด๋Ÿฌ์Šค ๊ฐ์—ผ ์˜ˆ๋ฐฉ์„ ์œ„ํ•ด ์‘์‹œ์ž๋“ค์€ ๊ฑฐ๋ฆฌ๋ฅผ ๋‘ฌ์„œ ๋Œ€๊ธฐ๋ฅผ ํ•ด์•ผํ•˜๋Š”๋ฐ ๊ฐœ๋ฐœ ์ง๊ตฐ ๋ฉด์ ‘์ธ ๋งŒํผ
์•„๋ž˜์™€ ๊ฐ™์€ ๊ทœ์น™์œผ๋กœ ๋Œ€๊ธฐ์‹ค์— ๊ฑฐ๋ฆฌ๋ฅผ ๋‘๊ณ  ์•‰๋„๋ก ์•ˆ๋‚ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋Œ€๊ธฐ์‹ค์€ 5๊ฐœ์ด๋ฉฐ, ๊ฐ ๋Œ€๊ธฐ์‹ค์€ 5x5 ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค.
  • ๊ฑฐ๋ฆฌ๋‘๊ธฐ๋ฅผ ์œ„ํ•˜์—ฌ ์‘์‹œ์ž๋“ค ๋ผ๋ฆฌ๋Š” ๋งจํ•ดํŠผ ๊ฑฐ๋ฆฌ1๊ฐ€ 2 ์ดํ•˜๋กœ ์•‰์ง€ ๋ง์•„ ์ฃผ์„ธ์š”.
  • ๋‹จ ์‘์‹œ์ž๊ฐ€ ์•‰์•„์žˆ๋Š” ์ž๋ฆฌ ์‚ฌ์ด๊ฐ€ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๋ง‰ํ˜€ ์žˆ์„ ๊ฒฝ์šฐ์—๋Š” ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

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

์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์ž๋ฆฌ ์‚ฌ์ด์— ํŒŒํ‹ฐ์…˜์ด ์กด์žฌํ•œ๋‹ค๋ฉด ๋งจํ•ดํŠผ ๊ฑฐ๋ฆฌ๊ฐ€ 2์—ฌ๋„ ๊ฑฐ๋ฆฌ๋‘๊ธฐ๋ฅผ ์ง€ํ‚จ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ํŒŒํ‹ฐ์…˜์„ ์‚ฌ์ด์— ๋‘๊ณ  ์•‰์€ ๊ฒฝ์šฐ๋„ ๊ฑฐ๋ฆฌ๋‘๊ธฐ๋ฅผ ์ง€ํ‚จ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์ž๋ฆฌ ์‚ฌ์ด๊ฐ€ ๋งจํ•ดํŠผ ๊ฑฐ๋ฆฌ 2์ด๊ณ  ์‚ฌ์ด์— ๋นˆ ํ…Œ์ด๋ธ”์ด ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ๋ฆฌ๋‘๊ธฐ๋ฅผ ์ง€ํ‚ค์ง€ ์•Š์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์‘์‹œ์ž๊ฐ€ ์•‰์•„์žˆ๋Š” ์ž๋ฆฌ(P)๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋นˆ ํ…Œ์ด๋ธ”(O)์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํŒŒํ‹ฐ์…˜(X)์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

5๊ฐœ์˜ ๋Œ€๊ธฐ์‹ค์„ ๋ณธ ์ฃ ๋ฅด๋””๋Š” ๊ฐ ๋Œ€๊ธฐ์‹ค์—์„œ ์‘์‹œ์ž๋“ค์ด ๊ฑฐ๋ฆฌ๋‘๊ธฐ๋ฅผ ์ž˜ ๊ธฐํ‚ค๊ณ  ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์ž๋ฆฌ์— ์•‰์•„์žˆ๋Š” ์‘์‹œ์ž๋“ค์˜ ์ •๋ณด์™€ ๋Œ€๊ธฐ์‹ค ๊ตฌ์กฐ๋ฅผ ๋Œ€๊ธฐ์‹ค๋ณ„๋กœ ๋‹ด์€ 2์ฐจ์› ๋ฌธ์ž์—ด ๋ฐฐ์—ด places๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๊ฐ ๋Œ€๊ธฐ์‹ค๋ณ„๋กœ ๊ฑฐ๋ฆฌ๋‘๊ธฐ๋ฅผ ์ง€ํ‚ค๊ณ  ์žˆ์œผ๋ฉด 1์„, ํ•œ ๋ช…์ด๋ผ๋„ ์ง€ํ‚ค์ง€ ์•Š๊ณ  ์žˆ์œผ๋ฉด 0์„ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

ํ’€์ด

๋‹จ์ˆœํ•˜๊ฒŒ BFS๋กœ ํ’€๋ฉด ๋˜๋Š”๋ฐ ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ์ด ๊ฐ‘์ž๊ธฐ ๊ฝ‚ํ˜€์„œ ์‹œ๊ฐ„์„ ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์ด ์ผ์Šต๋‹ˆ๋‹ค.. ๊ฒฐ๊ตญ ํ”Œ๋กœ์ด๋“œ์›Œ์…œ๋กœ๋Š” ๋ชปํ’€์—ˆ์ง€๋งŒ์š”..

 

BFS๋กœ ์ ‘๊ทผํ•˜๋ฉด "X"๋กœ ํ‘œํ˜„๋œ ํŒŒํ‹ฐ์…˜์„ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” P์™€ P ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

  1. ํŠน์ •ํ•œ "P" ์—์„œ๋ถ€ํ„ฐ BFS ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•œ๋‹ค. 
  2. ๊ฐ P์—์„œ ํƒ์ƒ‰์„ ํ•  ๋•Œ, "X" ํฌํ•จํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค.
  3. ์ƒˆ๋กœ์šด ์ •์ ์„ ํƒ์ƒ‰ํ•  ๋•Œ๋งˆ๋‹ค ํ˜„์žฌ๊นŒ์ง€์˜ ๋งจํ—ˆํŠผ ๊ฑฐ๋ฆฌ์˜ ํ•ฉ์— ์ƒˆ๋กœ์šด ์ •์ ์˜ ๋งคํ—ˆํŠผ ๊ฑฐ๋ฆฌ๋ฅผ ๋”ํ•ด ํ˜„์žฌ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
  4. ๋งŒ์•ฝ ์ƒˆ๋กœ์šด ์ •์ ์ด "P" ๋ผ๋ฉด,  ํ˜„์žฌ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  5. ํƒ์ƒ‰์ด ๋๋‚œ ํ›„ ๋ฐ˜ํ™˜๋œ ๊ฑฐ๋ฆฌ๊ฐ€ 2์ดํ•˜๋ผ๋ฉด ๊ฒฐ๊ณผ๋ฅผ 0์œผ๋กœ ๋ฐ”๊พผ๋‹ค.
  6. 1~5๋ฒˆ ๊ณผ์ •์„ ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๋ชจ๋“  "P"์— ๋Œ€ํ•ด ๋ฐ˜๋ณตํ•œ๋‹ค.

์ฝ”๋“œ