BFS

Algorithm/μΈν”„λŸ°(inflearn)

[JavaScript/section 9] 07 - μ„¬λ‚˜λΌ μ•„μΌλžœλ“œ(BFS)

πŸ“Œ 07 - μ„¬λ‚˜λΌ μ•„μΌλžœλ“œ(BFS ν™œμš©) N*N의 μ„¬λ‚˜λΌ μ•„μΌλžœλ“œμ˜ 지도가 격자판의 μ •λ³΄λ‘œ 주어진닀. 각 섬은 1둜 ν‘œμ‹œλ˜μ–΄ μƒν•˜μ’Œμš°μ™€ λŒ€κ°μ„ μœΌλ‘œ μ—°κ²°λ˜μ–΄ 있으며, 0은 바닀이닀. μ„¬λ‚˜λΌ μ•„μΌλžœλ“œμ— λͺ‡ 개의 섬이 μžˆλŠ”μ§€ κ΅¬ν•˜λŠ” λ¬Έμ œμ΄λ‹€. λ§Œμ•½ μœ„μ™€ κ°™λ‹€λ©΄ μ„¬μ˜ κ°œμˆ˜λŠ” 총 5κ°œμ΄λ‹€. μ„¬λ‚˜λΌ μ•„μΌλžœλ“œ(DFS) λ¬Έμ œμ™€ κ°™μ§€λ§Œ μ΄λ²ˆμ—λŠ” BFS μ•Œκ³ λ¦¬μ¦˜μ„ μ΄μš©ν•΄ ν’€μ–΄λ³΄μ•˜λ‹€. μ˜μ—­μ„ νƒμƒ‰ν•˜λŠ” 문제의 κ²½μš°μ—λŠ” λ³ΈμΈμ—κ²Œ νŽΈν•œ 방법을 μ΄μš©ν•˜μ—¬ ν’€λ©΄ 될 것 κ°™λ‹€..πŸ€” πŸ“ 풀이 방법 이쀑 for 문을 λŒλ©΄μ„œ 1이 λ‚˜μ˜¨λ‹€λ©΄ 섬을 λ°œκ²¬ν•œ κ²ƒμ΄λ―€λ‘œ λ°°μ—΄μ—μ„œ ν•΄λ‹Ή μ’Œν‘œλ₯Ό 0으둜 μž¬ν• λ‹Ήν•˜κ³  answer++을 ν•œλ‹€. λ˜ν•œ, 넓이 μš°μ„  탐색을 μœ„ν•΄ 큐에 ν•΄λ‹Ή μ’Œν‘œλ₯Ό μΆ”κ°€ν•œλ‹€. while 문을 λŒλ©΄μ„œ νμ—μ„œ shift ν•œ μ’Œν‘œμ— λŒ€ν•΄ ..

Algorithm/μΈν”„λŸ°(inflearn)

[JavaScript/section 9] 05 - 솑아지 μ°ΎκΈ°

πŸ“Œ 05 - 솑아지 μ°ΎκΈ°(BFS : μƒλŒ€νŠΈλ¦¬νƒμƒ‰) ν˜„μˆ˜λŠ” 솑아지λ₯Ό μžƒμ–΄λ²„λ Έλ‹€. λ‹€ν–‰νžˆ μ†‘μ•„μ§€μ—λŠ” μœ„μΉ˜μΆ”μ κΈ°κ°€ 달렀 μžˆλ‹€. ν˜„μˆ˜μ˜ μœ„μΉ˜μ™€ μ†‘μ•„μ§€μ˜ μœ„μΉ˜κ°€ μˆ˜μ§μ„ μƒμ˜ μ’Œν‘œ 점으둜 주어지면 ν˜„μˆ˜λŠ” ν˜„μž¬ μœ„μΉ˜μ—μ„œ μ†‘μ•„μ§€μ˜ μœ„μΉ˜κΉŒμ§€ λ‹€μŒκ³Ό 같은 λ°©λ²•μœΌλ‘œ μ΄λ™ν•œλ‹€. μ†‘μ•„μ§€λŠ” 움직이지 μ•Šκ³  μ œμžλ¦¬μ— μžˆλ‹€. ν˜„μˆ˜λŠ” 슀카이 콩콩을 타고 κ°€λŠ”λ° ν•œ 번의 μ ν”„λ‘œ μ•žμœΌλ‘œ 1, λ’€λ‘œ 1, μ•žμœΌλ‘œ 5λ₯Ό 이동할 수 μžˆλ‹€. μ΅œμ†Œ λͺ‡ 번의 μ ν”„λ‘œ ν˜„μˆ˜κ°€ μ†‘μ•„μ§€μ˜ μœ„μΉ˜κΉŒμ§€ 갈 수 μžˆλŠ”μ§€ κ΅¬ν•˜λŠ” λ¬Έμ œμ΄λ‹€. πŸ“ μž…λ ₯μ„€λͺ… 첫 번째 쀄에 ν˜„μˆ˜μ˜ μœ„μΉ˜ S와 μ†‘μ•„μ§€μ˜ μœ„μΉ˜ Eκ°€ 주어진닀. μ§μ„ μ˜ μ’Œν‘œ 점은 1λΆ€ν„° 10,000κΉŒμ§€μ΄λ‹€. πŸ“ 좜λ ₯μ„€λͺ… μ ν”„μ˜ μ΅œμ†ŒνšŸμˆ˜λ₯Ό κ΅¬ν•œλ‹€. 닡은 1 이상이닀. 문제λ₯Ό ν•΄μ„ν•˜λ©΄ ν˜„μˆ˜μ˜ μœ„μΉ˜(좜발 지점)μ—μ„œ μ†‘μ•„μ§€μ˜ ..

Algorithm/μΈν”„λŸ°(inflearn)

[JavaScript/section 9] 04 - μ΄μ§„νŠΈλ¦¬ λ„“μ΄μš°μ„ νƒμƒ‰(BFS)

πŸ“Œ 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 [..

ν”„λ‘ νŠΈμ—”λ“œ μ—”μ§€λ‹ˆμ–΄
'BFS' νƒœκ·Έμ˜ κΈ€ λͺ©λ‘