ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜

Algorithm/์ธํ”„๋Ÿฐ(inflearn)

[JavaScript/section 5] 08 - ๋ชจ๋“  ์•„๋‚˜๊ทธ๋žจ ์ฐพ๊ธฐ

๐Ÿ“Œ 08 - ๋ชจ๋“  ์•„๋‚˜๊ทธ๋žจ ์ฐพ๊ธฐ(ํ•ด์‰ฌ, ํˆฌํฌ์ธํ„ฐ, ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ) S๋ฌธ์ž์—ด์—์„œ T๋ฌธ์ž์—ด๊ณผ ์•„๋‚˜๊ทธ๋žจ์ด ๋˜๋Š” S์˜ ๋ถ€๋ถ„๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ž์ด๋‹ค. ๋‚˜์˜ ํ’€์ด ๋ฐฉ๋ฒ• ์•„๋‚˜๊ทธ๋žจ์ด ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ•ด์‰ฌ์˜ ํŠน์ง•์„ ์‚ฌ์šฉํ–ˆ๊ณ , ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๋ฐฉ์‹๊ณผ slice() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๋‚˜์„œ ์ž˜ ํ’€์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ.. ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ๋ณด๋‹ˆ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ๊ตฌํ•˜๋Š” ๋ถ€๋ถ„์— ์žˆ์–ด์„œ ์ด์ค‘ for ๋ฌธ์„ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์„ฑ(์‹œ๊ฐ„ ๋ณต์žก๋„) ์ธก๋ฉด์—์„œ๋Š” ์ข‹์ง€ ์•Š๋‹ค๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. for ๋ฌธ์„ ๋Œ๊ธฐ ์ „์— t์˜ ํ•ด์‰ฌ ๊ฐ’์„ ๊ตฌํ•œ๋‹ค. for ๋ฌธ์„ ๋Œ๋ฉด์„œ s๋ฌธ์ž์—ด์— slice() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ i ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ t๋ฌธ์ž์—ด ๊ธธ์ด + i ์ „๊นŒ์ง€๋ฅผ ์ž˜๋ผ์ค€ ํ›„ str ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค. (๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ..

Algorithm/์ธํ”„๋Ÿฐ(inflearn)

[JavaScript/section 5] 04 - ์—ฐ์† ๋ถ€๋ถ„์ˆ˜์—ด 2

๐Ÿ“Œ 04 - ์—ฐ์† ๋ถ€๋ถ„์ˆ˜์—ด 2(ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜) N๊ฐœ์˜ ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆ˜์—ด์—์„œ ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ์ด ํŠน์ • ์ˆซ์ž M์ดํ•˜๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ช‡ ๋ฒˆ ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋‚˜์˜ ํ’€์ด ๋ฐฉ๋ฒ• for ๋ฌธ์„ ์ฐจ๋ก€๋Œ€๋กœ ๋Œ๋ฉฐ ํฌ์ธํ„ฐ rt์˜ ์œ„์น˜๋ฅผ ์ด๋™์‹œํ‚จ๋‹ค. ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๊ฐ’์„ sum์— ๋ˆ„์ ์‹œ์ผœ์ค€๋‹ค. sum์ด m๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ answer++์„ ํ•ด์ค€๋‹ค. ํฌ์ธํ„ฐ rt๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๊ฐ’์ด m ์ดํ•˜์ด๊ณ  sum๊ณผ ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด answer++์„ ํ•ด์ค€๋‹ค. ํฌ์ธํ„ฐ rt๊ฐ€ 1์”ฉ ์ฆ๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๊ฐ’์ด ํŠน์ • ์ˆซ์ž M์ดํ•˜๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์œ„ ๊ณผ์ •์—์„œ sum์ด m๋ณด๋‹ค ํฌ๊ณ  ๊ฐ™์•„์งˆ ๊ฒฝ์šฐ ํฌ์ธํ„ฐ lt๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์ž‡๋Š” ๊ฐ’์„ sum์—์„œ ๋นผ์ค€๋‹ค. sum์ด m ์ดํ•˜์ด๊ณ  ํฌ์ธํ„ฐ..

Algorithm/์ธํ”„๋Ÿฐ(inflearn)

[JavaScript/section 5] 03 - ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด 1

๐Ÿ“Œ ๋ฌธ์ œ N๊ฐœ์˜ ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆ˜์—ด์—์„œ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ์ด ํŠน์ • ์ˆซ์ž M์ด ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ช‡ ๋ฒˆ ์žˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋งŒ์•ฝ N=8, M=6์ด๊ณ  ์ˆ˜์—ด์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋ฉด 1 2 1 3 1 1 1 2 ํ•ฉ์ด 6์ด ๋˜๋Š” ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด์€ {2, 1, 3}, {1, 3, 1, 1}, {3, 1, 1, 1}๋กœ ์ด 3๊ฐ€์ง€์ด๋‹ค. ๐Ÿ“ ํ’€์ด ๐Ÿง‘๐Ÿป‍๐Ÿ’ป ๋‚˜์˜ ํ’€์ด ๋ฐฉ๋ฒ• lt(์™ผ์ชฝ์„ ๋‹ด๋‹นํ•  ํฌ์ธํ„ฐ), rt(์˜ค๋ฅธ์ชฝ์„ ๋‹ด๋‹นํ•  ํฌ์ธํ„ฐ)๋ฅผ ์ธ๋ฑ์Šค 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. rt ํฌ์ธํ„ฐ๋ฅผ ํ•œ์นธ์”ฉ ์ด๋™(์ฆ๊ฐ€)์‹œํ‚ค๋ฉด์„œ ํฌ์ธํ„ฐ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ sum์— ๋ˆ„์ ์‹œํ‚จ๋‹ค. ์œ„ ๊ณผ์ •์—์„œ sum์ด m๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด ๋‹ค์Œ ํ‰๊ฐ€๋ฅผ ์œ„ํ•ด while๋ฌธ์„ ๋Œ๋ฉด์„œ lt ํฌ์ธํ„ฐ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ sum์—์„œ ๋นผ์ฃผ๊ณ  ํ•œ์นธ ์ด๋™์‹œ์ผœ์•ผ ํ•œ๋‹ค. ์ด์ „์— su..

Algorithm/์ธํ”„๋Ÿฐ(inflearn)

[JavaScript/section 5] 02 - ๊ณตํ†ต์›์†Œ ๊ตฌํ•˜๊ธฐ

๐Ÿ“Œ ๋ฌธ์ œ A, B ๋‘ ๊ฐœ์˜ ์ง‘ํ•ฉ์ด ์ฃผ์–ด์ง€๋ฉด ๋‘ ์ง‘ํ•ฉ์˜ ๊ณตํ†ต ์›์†Œ๋ฅผ ์ถ”์ถœํ•˜์—ฌ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๐Ÿ“ ํ’€์ด ๐Ÿง‘๐Ÿป‍๐Ÿ’ป ๋‚˜์˜ ํ’€์ด ๋ฐฉ๋ฒ• arr1์„ sort() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. arr1์„ ํ•˜๋‚˜์”ฉ ๋Œ๋ฉด์„œ includes() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ๊ฐ’์ด arr2์— ์กด์žฌ(true)ํ•œ๋‹ค๋ฉด answer์— ๊ฐ’์„ ์‚ฝ์ž…ํ•œ๋‹ค. function solution(arr1, arr2) { const answer = []; arr1.sort((a, b) => a - b); for (let x of arr1) { if (arr2.includes(x)) answer.push(x); } return answer; } let a = [1, 3, 9, 5, 2]; let b = [3, 2, 5, 7, 8];..

Algorithm/์ธํ”„๋Ÿฐ(inflearn)

[JavaScript/section 5] 01 - ๋‘ ๋ฐฐ์—ด ํ•ฉ์น˜๊ธฐ

๐Ÿ“Œ ๋ฌธ์ œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ์ด ๋œ ๋‘ ๋ฐฐ์—ด์ด ์ฃผ์–ด์ง€๋ฉด ๋‘ ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ํ•ฉ์ณ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๐Ÿ“ ํ’€์ด ๐Ÿง‘๐Ÿป‍๐Ÿ’ป ๋‚˜์˜ ํ’€์ด ๋ฐฉ๋ฒ•(๊ฐ•์‚ฌ๋‹˜ ํ’€์ด ๋ฐฉ๋ฒ•๊ณผ ๋™์ผ๐Ÿ˜) ๋‘ ๋ฐฐ์—ด์„ ํ•˜๋‚˜๋กœ([...arr1, ...arr2]) ํ•ฉ์น˜๊ณ  sort() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ ฌํ•จ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, sort() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ € ์—”์ง„๋งˆ๋‹ค ๋‹ค๋ฅด์ง€๋งŒ ํ‰๊ท ์ ์œผ๋กœ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(nlogn)์— ํ•ด๋‹นํ•œ๋‹ค. ์ด์— ๋น„ํ•ด ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(n + m)์ด๋ฏ€๋กœ ๋งค์šฐ ํšจ์œจ์ ์ด๋‹ค. ํฌ์ธํ„ฐ p1, p2๊ฐ€ ๊ฐ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ while๋ฌธ์„ ๋Œ๋ฉฐ arr1[p1]๊ณผ arr2[p2]๋ฅผ ๋น„๊ตํ•œ๋‹ค. ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ํ•ฉ์ณ์•ผ ํ•˜๋ฏ€๋กœ ๋” ์ž‘์€ ๊ฐ’์„ answer์— push() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฝ์ž…ํ•˜..

ํ”„๋ก ํŠธ์—”๋“œ ์—”์ง€๋‹ˆ์–ด
'ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก