Algorithm/์ธํ๋ฐ(inflearn)
[JavaScript/section 9] 04 - ์ด์งํธ๋ฆฌ ๋์ด์ฐ์ ํ์(BFS)
_์ฑํธ_
2022. 11. 21. 15:13
728x90
๋ฐ์ํ
๐ 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 [v * 2, v * 2 + 1]) {
if (nv > 7) continue;
queue.push(nv);
}
}
return answer;
}
console.log(solution());