[JavaScript/section 9] 05 - ์†ก์•„์ง€ ์ฐพ๊ธฐ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 05 - ์†ก์•„์ง€ ์ฐพ๊ธฐ(BFS : ์ƒ๋Œ€ํŠธ๋ฆฌํƒ์ƒ‰) ํ˜„์ˆ˜๋Š” ์†ก์•„์ง€๋ฅผ ์žƒ์–ด๋ฒ„๋ ธ๋‹ค. ๋‹คํ–‰ํžˆ ์†ก์•„์ง€์—๋Š” ์œ„์น˜์ถ”์ ๊ธฐ๊ฐ€ ๋‹ฌ๋ ค ์žˆ๋‹ค. ํ˜„์ˆ˜์˜ ์œ„์น˜์™€ ์†ก์•„์ง€์˜ ์œ„์น˜๊ฐ€ ์ˆ˜์ง์„ ์ƒ์˜ ์ขŒํ‘œ ์ ์œผ๋กœ ์ฃผ์–ด์ง€๋ฉด ํ˜„์ˆ˜๋Š” ํ˜„์žฌ ์œ„์น˜์—์„œ ์†ก์•„์ง€์˜ ์œ„์น˜๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด๋™ํ•œ๋‹ค. ์†ก์•„์ง€๋Š” ์›€์ง์ด์ง€ ์•Š๊ณ  ์ œ์ž๋ฆฌ์— ์žˆ๋‹ค. ํ˜„์ˆ˜๋Š” ์Šค์นด์ด ์ฝฉ์ฝฉ์„ ํƒ€๊ณ  ๊ฐ€๋Š”๋ฐ ํ•œ ๋ฒˆ์˜ ์ ํ”„๋กœ ์•ž์œผ๋กœ 1, ๋’ค๋กœ 1, ์•ž์œผ๋กœ 5๋ฅผ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ตœ์†Œ ๋ช‡ ๋ฒˆ์˜ ์ ํ”„๋กœ ํ˜„์ˆ˜๊ฐ€ ์†ก์•„์ง€์˜ ์œ„์น˜๊นŒ์ง€ ๊ฐˆ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๐Ÿ“ ์ž…๋ ฅ์„ค๋ช… ์ฒซ ๋ฒˆ์งธ ์ค„์— ํ˜„์ˆ˜์˜ ์œ„์น˜ S์™€ ์†ก์•„์ง€์˜ ์œ„์น˜ E๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ง์„ ์˜ ์ขŒํ‘œ ์ ์€ 1๋ถ€ํ„ฐ 10,000๊นŒ์ง€์ด๋‹ค. ๐Ÿ“ ์ถœ๋ ฅ์„ค๋ช… ์ ํ”„์˜ ์ตœ์†ŒํšŸ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค. ๋‹ต์€ 1 ์ด์ƒ์ด๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด์„ํ•˜๋ฉด ํ˜„์ˆ˜์˜ ์œ„์น˜(์ถœ๋ฐœ ์ง€์ )์—์„œ ์†ก์•„์ง€์˜ ..
[JavaScript/section 9] 04 - ์ด์ง„ํŠธ๋ฆฌ ๋„“์ด์šฐ์„ ํƒ์ƒ‰(BFS)
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 04 - ์ด์ง„ํŠธ๋ฆฌ ๋„“์ด์šฐ์„ ํƒ์ƒ‰(BFS) ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ์ด์ง„ํŠธ๋ฆฌ๋ฅผ ๋„“์ด์šฐ์„ ํƒ์ƒ‰ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋„“์ด์šฐ์„ ํƒ์ƒ‰ : 1 2 3 4 5 6 7 ์–ธ์ œ BFS๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€โ“ ์ถœ๋ฐœ ์ง€์ ์—์„œ ๋„์ฐฉ ์ง€์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•  ๋•Œ ๋…ธ๋“œ 1์ด ์ถœ๋ฐœ ์ง€์ ์ด๋ฏ€๋กœ ํ์— 1์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ํ๊ฐ€ ๋ชจ๋‘ ๋น„์›Œ์งˆ ๋•Œ ๊นŒ์ง€ while ๋ฌธ์„ ๋Œ๋ฉฐ ํ์—์„œ shift ํ•œ ๋…ธ๋“œ์™€ ๊ทผ์ ‘ํ•œ ๋…ธ๋“œ๊ฐ€ 7๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด ํ์— ์ถ”๊ฐ€ํ•œ๋‹ค. 7๋ณด๋‹ค ํฌ๋‹ค๋ฉด ํ์— ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ๋„˜์–ด๊ฐ„๋‹ค. function solution() { let answer = ''; let queue = []; queue.push(1); while (queue.length) { let v = queue.shift(); answer += v + ' '; for (let nv of [..
_์„ฑํ˜ธ_
'Queue' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก