[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 [..
[JavaScript/section 9] 03 - ๋ฏธ๋กœ ํƒ์ƒ‰
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 03 - ๋ฏธ๋กœ ํƒ์ƒ‰(DFS) 7*7 ๊ฒฉ์žํŒ ๋ฏธ๋กœ๋ฅผ ํƒˆ์ถœํ•˜๋Š” ๊ฒฝ๋กœ์˜ ๊ฐ€์ง“์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ถœ๋ฐœ์ ์€ ๊ฒฉ์ž์˜ (1, 1) ์ขŒํ‘œ์ด๊ณ , ํƒˆ์ถœ ๋„์ฐฉ์ ์€ (7, 7) ์ขŒํ‘œ์ด๋‹ค. ๊ฒฉ์žํŒ์˜ 1์€ ๋ฒฝ์ด๊ณ , 0์€ ํ†ต๋กœ์ด๋‹ค. ๊ฒฉ์žํŒ์˜ ์›€์ง์ž„์€ ์ƒํ•˜์ขŒ์šฐ๋กœ๋งŒ ์›€์ง์ธ๋‹ค. ๋ฏธ๋กœ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋ฉด ์œ„์˜ ์ง€๋„์—์„œ ์ถœ๋ฐœ์ ์—์„œ ๋„์ฐฉ์ ๊นŒ์ง€ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋Š” 8๊ฐ€์ง€ ์ด๋‹ค. ๐Ÿ“ ํ’€์ด ๋ฐฉ๋ฒ• nx - ์ด๋™ํ•  ํ–‰, ny - ์ด๋™ํ•  ์—ด ์ƒํ•˜์ขŒ์šฐ๋กœ๋งŒ ์›€์ง์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์›€์ง์ผ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 4๊ฐ€์ง€์ด๋‹ค. ์žฌ๊ท€๋ฅผ ๋Œ๋ฉด์„œ ๋‹ค์Œ์— ์ด๋™ํ•  ์ขŒํ‘œ๊ฐ€ ๊ฒฉ์žํŒ์„ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•œ ๋‹ค์Œ ์ด๋™์ด ๊ฐ€๋Šฅํ•œ ํ†ต๋กœ๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธ ํ•ด์•ผ ํ•œ๋‹ค. board[nx][ny] (์ด๋™ํ•  ์ขŒํ‘œ)๊ฐ€ 0์ด๋ผ๋ฉด ์ด๋™์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด๋ฏ€๋กœ ์ด๋™ํ•˜๊ณ  ์ด๋™ํ–ˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด b..
[JavaScript/section 9] 02 - ๊ฒฝ๋กœ ํƒ์ƒ‰(์ธ์ ‘ ๋ฆฌ์ŠคํŠธ)
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 02 - ๊ฒฝ๋กœ ํƒ์ƒ‰(์ธ์ ‘ ๋ฆฌ์ŠคํŠธ) ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์ง€๋ฉด 1๋ฒˆ ์ •์ ์—์„œ N๋ฒˆ ์ •์ ์œผ๋กœ ๊ฐ€๋Š” ๋ชจ๋“  ๊ฒฝ๋กœ์˜ ๊ฐ€์ง€ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ์•„๋ž˜ ๊ทธ๋ž˜ํ”„์—์„œ 1๋ฒˆ ์ •์ ์—์„œ 5๋ฒˆ ์ •์ ์œผ๋กœ ๊ฐ€๋Š” ๊ฐ€์ง€ ์ˆ˜๋Š” ์ด 6๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค. ์ด์ „ ๋ฌธ์ œ์™€ ๊ฐ™์€ ๋ฌธ์ œ์ด์ง€๋งŒ ์ธ์ ‘ ํ–‰๋ ฌ์ด ์•„๋‹Œ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ •์ ์ด ์ ๋‹ค๋ฉด ์ธ์ ‘ ํ–‰๋ ฌ๋กœ ํ’€์–ด๋„ ๋˜์ง€๋งŒ ๋ฌด์ˆ˜ํžˆ ๋งŽ๋‹ค๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„, ์‹œ๊ฐ„ ๋ณต์žก๋„ ์ฆ๊ฐ€์™€ ๊ฐ™์€ ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ•œ๋‹ค. ๐Ÿ’ฉ๐Ÿ’ฉ ์ด๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹์ด ์กด์žฌํ•œ๋‹ค. v ์ •์ (ํ–‰)์—์„œ ์ด๋™ ๊ฐ€๋Šฅํ•œ ์ •์ ์„ ๊ฐ๊ฐ ๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•œ๋‹ค. ๐Ÿ“ ํ’€์ด ๋ฐฉ๋ฒ• v - ํ˜„์žฌ ์ •์ , i - ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค, ch - ํ•ด๋‹น ์ •์ ์„ ์ง€๋‚ฌ๋Š”์ง€ ์ฒดํฌํ•˜๋Š” ๋ฐฐ์—ด graph[v][i] - ํ˜„์žฌ ์ •์ ์—์„œ ์ด๋™ํ•  ..
[JavaScript/section 9] 01 - ๊ฒฝ๋กœ ํƒ์ƒ‰(์ธ์ ‘ ํ–‰๋ ฌ)
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 01 - ๊ฒฝ๋กœ ํƒ์ƒ‰(DFS-์ธ์ ‘ ํ–‰๋ ฌ: ๋…ธ๋“œ ๊ฐœ์ˆ˜๊ฐ€ ์ ์„ ๋•Œ) ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์ง€๋ฉด 1๋ฒˆ ์ •์ ์—์„œ N๋ฒˆ ์ •์ ์œผ๋กœ ๊ฐ€๋Š” ๋ชจ๋“  ๊ฒฝ๋กœ์˜ ๊ฐ€์ง€ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ์•„๋ž˜ ๊ทธ๋ž˜ํ”„์—์„œ 1๋ฒˆ ์ •์ ์—์„œ 5๋ฒˆ ์ •์ ์œผ๋กœ ๊ฐ€๋Š” ๊ฐ€์ง€ ์ˆ˜๋Š” ์ด 6๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ์ธ์ ‘ ํ–‰๋ ฌ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. v ์ •์ (ํ–‰)์—์„œ i ์ •์ (์—ด)์œผ๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด 1, ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด 0์œผ๋กœ ํ‘œ์‹œํ•œ๋‹ค. ๐Ÿ“ ํ’€์ด ๋ฐฉ๋ฒ• v - ํ˜„์žฌ ์ •์ , i - ๋งˆ์ง€๋ง‰์œผ๋กœ ๋„๋‹ฌํ•ด์•ผํ•˜๋Š” ์ •์  ch - ํ•ด๋‹น ์ •์ ์„ ์ง€๋‚ฌ๋Š”์ง€ ์ฒดํฌํ•˜๋Š” ๋ฐฐ์—ด ์žฌ๊ท€๋ฅผ ๋Œ๋ฉด์„œ graph[v][i]๋Š” 1์ด๊ณ  ch[i]๋Š” 0์ด๋ผ๋ฉด v ์ •์ ์—์„œ i ์ •์ ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ํ•ด๋‹น ์ •์ ์œผ๋กœ ์ด๋™ํ–ˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ch[i]..
[JavaScript/section 8] 15 - ์ˆ˜๋“ค์˜ ์กฐํ•ฉ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 15 - ์ˆ˜๋“ค์˜ ์กฐํ•ฉ N๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ๊ทธ ์ˆซ์ž๋“ค ์ค‘ K๊ฐœ๋ฅผ ๋ฝ‘๋Š” ์กฐํ•ฉ์˜ ํ•ฉ์ด ์ž„์˜์˜ ์ •์ˆ˜ M์˜ ๋ฐฐ์ˆ˜์ธ ๊ฐœ์ˆ˜๋Š” ๋ช‡ ๊ฐœ๊ฐ€ ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด 5๊ฐœ์˜ ์ˆซ์ž 2 4 5 8 12๊ฐ€ ์ฃผ์–ด์ง€๊ณ , 3๊ฐœ๋ฅผ ๋ฝ‘์€ ์กฐํ•ฉ์˜ ํ•ฉ์ด 6์˜ ๋ฐฐ์ˆ˜์ธ ์กฐํ•ฉ์„ ์ฐพ์œผ๋ฉด 4+8+12, 2+4+12๋กœ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๐Ÿ“ ํ’€์ด ๋ฐฉ๋ฒ• ๐Ÿ˜ต ๋‚˜์˜ ํ’€์ด ๋ฐฉ๋ฒ• if๋ฌธ ์•ˆ์— 2๊ฐœ์˜ ์กฐ๊ฑด์„ ๊ฐ™์ด ์ฃผ์–ด L(๋ ˆ๋ฒจ)์ด k(๋ฝ‘๋Š” ๊ฐœ์ˆ˜)์™€ ๊ฐ™๋”๋ผ๋„ sum์ด 6์˜ ๋ฐฐ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด else๋ฌธ์œผ๋กœ ์ด๋™ํ•œ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๊ฒฐ๊ณผ๋Š” ๋™์ผํ•˜๊ฒŒ ๋‚˜์˜ค์ง€๋งŒ ์‹œ๊ฐ„์„ ์žก์•„๋จน์„ ์ˆ˜ ์žˆ๋‹ค.๐Ÿคฌ L์ด k์™€ ๊ฐ™๋‹ค๋ฉด else ๋ฌธ์œผ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ if๋ฌธ ๋‚ด๋ถ€์—์„œ sum์ด 6์˜ ๋ฐฐ์ˆ˜์ธ์ง€๋ฅผ ํ™•์ธํ•˜๊ณ  ๋น ์ ธ๋‚˜์™€์•ผ ํ•œ๋‹ค. function solution(n, k, arr,..
[JavaScript/section 8] 14 - ์กฐํ•ฉ ๊ตฌํ•˜๊ธฐ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 14 - ์กฐํ•ฉ ๊ตฌํ•˜๊ธฐ 1๋ถ€ํ„ฐ N๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ์ ํžŒ ๊ตฌ์Šฌ์ด ์žˆ๋‹ค. ์ด ์ค‘ M๊ฐœ๋ฅผ ๋ฝ‘๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. M๊ฐœ๋ฅผ ๋ฝ‘๋Š”๋‹ค๊ณ  ํ–ˆ์œผ๋ฏ€๋กœ ์กฐํ•ฉ์„ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค. N์ด 4์ด๊ณ  M์ด 2์ธ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์žโ— ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด L1์ด ์ •ํ•ด์ง€๋ฉด L2๋Š” L1 + 1๋ถ€ํ„ฐ N๊นŒ์ง€ for ๋ฌธ์„ ๋Œ๋ฉด์„œ ์ •ํ•ด์ง„๋‹ค. ๐Ÿ“ ํ’€์ด ๋ฐฉ๋ฒ• s๋Š” for๋ฌธ์—์„œ ์ดˆ๊ธฐ๊ฐ’์— ํ•ด๋‹นํ•œ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ทธ๋ฆผ์œผ๋กœ ํ•œ๋ฒˆ ์ดํ•ดํ•˜๊ณ  ์™ธ์šฐ๋„๋ก ํ•˜์ž(์ค‘์š”โ—) L(๋ ˆ๋ฒจ)์ด m๊ณผ ๊ฐ™๋‹ค๋ฉด ํ•˜๋‚˜์˜ ๊ฒฝ์šฐ๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์ด๋ฏ€๋กœ tmp๋ฅผ ์–•์€ ๋ณต์‚ฌ(slice)ํ•˜์—ฌ answer์— ์ถ”๊ฐ€ํ•œ๋‹ค. function solution(n, m) { let answer = []; let tmp = Array.from({ length: m }, () => 0); function DFS..
[JavaScript/section 8] 13 - ์ˆ˜์—ด ์ถ”์ธกํ•˜๊ธฐ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 13 - ์ˆ˜์—ด ์ถ”์ธกํ•˜๊ธฐ ๊ฐ€์žฅ ์œ—์ค„์— 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ์ˆซ์ž๊ฐ€ ํ•œ ๊ฐœ์”ฉ ์ ํ˜€ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ํŒŒ์Šค์นผ์˜ ์‚ผ๊ฐํ˜•์ฒ˜๋Ÿผ ์œ„์˜ ๋‘ ๊ฐœ๋ฅผ ๋”ํ•œ ๊ฐ’์ด ์ €์žฅ๋˜๊ฒŒ ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด N์ด 4์ด๊ณ  ๊ฐ€์žฅ ์œ—์ค„์— 3 1 2 4๊ฐ€ ์žˆ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ผ๊ฐํ˜•์ด ๊ทธ๋ ค์ง„๋‹ค. N๊ณผ ๊ฐ€์žฅ ๋ฐ‘์— ์žˆ๋Š” ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์ ธ ์žˆ์„ ๋•Œ ๊ฐ€์žฅ ์œ—์ค„์— ์žˆ๋Š” ์ˆซ์ž๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋‹จ, ๋‹ต์ด ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์ „์ˆœ์œผ๋กœ ๊ฐ€์žฅ ์•ž์— ์˜ค๋Š” ๊ฒƒ์„ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ์ž…๋ ฅ์˜ˆ์ œ 4 16 ์ถœ๋ ฅ์˜ˆ์ œ 3 1 2 4 ์ด๋ฒˆ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ์•Œ์•„์•ผํ•œ๋‹ค. ๋นจ๊ฐ„ ์ƒ‰๊ณผ ๊ฐ™์ด ์ˆœ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ˆซ์ž๊นŒ์ง€ ์ฐจ๋ก€๋Œ€๋กœ n-1C0, n-1C1, n-1C2, n-1C3๋ฒˆ ๋”ํ•ด์ง„ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ฒฐ๋ก ์ ์œผ๋กœ ์ˆœ์—ด ๊ตฌ..
[JavaScript/section 8] 12 - ์กฐํ•ฉ์˜ ๊ฒฝ์šฐ ์ˆ˜
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 12 - ์กฐํ•ฉ์˜ ๊ฒฝ์šฐ ์ˆ˜(๋ฉ”๋ชจ์ด์ œ์ด์…˜) nCr = n! / (n - r)!r! ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ณต์‹์„ ์“ฐ์ง€ ์•Š๊ณ  ๋‹ค์Œ ๊ณต์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์žฌ๊ท€๋ฅผ ์ด์šฉํ•ด ์กฐํ•ฉ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ž…๋ ฅ์„ค๋ช… ์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ n(3
_์„ฑํ˜ธ_
'Inflearn' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)