Data Structures & Algorithms with Javascript : Binary Trees and Binary Search Trees
2024.07.24 - [๐ค data structures & algorithms] - Data Structures & Algorithms with Javascript : Sets Data Structures & Algorithms with Javascript : Sets[์ด์ ๊ธ]2024.07.23 - [๐ค data structures & algorithms] - Data Structures & Algorithms with Java
pyotato-dev.tistory.com
์ด์ Data Structures & Algorithms with Javascript ์ 4 ๋จ์ ์ ๋ ๋จ๊ฒจ๋๊ณ ์๋ ์์ ์ด๋ค.
ํ๊ณ ๋ผ๊ณ ํ๊ธฐ์ ์ด๋ฅด์ง๋ง ํ๋ฒ ์ค๊ฐ ์ ๊ฒ ๊ฒธ ๋๋ ์ ๊ณผ ์๊ฐ๋ค์ ๊ธฐ๋กํด๋ณด๊ณ ์ ํ๋ค.
์ด ์ฑ ์ ์ถ์ฒํ๋ค?
๐ ์ด๋ฐ ์ ์ ์ฝ๋๋ฐ ๋ถํธํ์ด์!
์ ํ์ด ๋์ด ํ์ฌ๋ pdf ์์๋ฅผ ์ฝ๊ณ ์๋ค. ์๋ฃ ๊ตฌ์กฐ์ ๋ํด ๊ณต๋ถ๋ฅผ ํด๋ดค์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ค๋ฃฌ ๊ฑด ์ฒ์์ด์๊ณ , ์ ๊ฒ ๊ฒธ ์ถ์ฒ์ ๋ฐ์์ ์ฝ์ด๋ณด๊ธฐ๋ก ํ์๋ค. ์์ฌ์ด ์ ์ ์ด ์ฑ ์ด 2014๋ ์ ์ถํ๋์ด์ ์ต์ JS ๋ฌธ๋ฒ์ ํ์ฉํ๊ณ ์์ง ๋ชปํ๋ค๋ ์ , ๊ทธ๋ฆฌ๊ณ ์์ ์์ ๋ค๋ฃฌ ์ฝ๋๊ฐ ์ผ๋ถ ๋์์ด ์ํ์ง ์๊ฑฐ๋ ํจ์๋ฅผ ์ ์ธํ ๋ถ๋ถ์ ์๋ตํด์ ์ ์ฌํ๊ฒ ๋์ฒด๋ฅผ ํด์ผ ํ๋ ์ ์ด ์๋ค.
๐ค ์ด๋ฐ ์ ์ ์ฝ๋๋ฐ ๋์์ด ๋์์ด์!
์ข์๋ ์ ์ ์์ฃผ ์ฝ๊ธฐ ์ฝ๊ฒ ์๋ฃ ๊ตฌ์กฐ์ ๋ํด ์ค๋ช ์ ํ๊ณ , ํจ์๋ก ์์ฑ๋ ์ฝ๋์ง๋ง ํด๋์ค ๋ฌธ๋ฒ์ผ๋ก ์ ํํ๋๋ฐ ์ด๋ ค์์ด ์ ํ ์์ด์ ํจ์๊ฐ ์ผ๊ธ ๊ฐ์ฒด์ธ ์๋ฐ์คํฌ๋ฆฝํธ์ ํน์ง์ด ์ ๋๋ ์ ์์๋ค. ํด๋์ค ๋ฌธ๋ฒ์ด ์ต์ํ์ง ์์ ์ฌ๋๋ค์๊ฒ๋ ์คํ๋ ค ํจ์๋ก ์์ฑ๋ ์ฝ๋๋ฅผ ํด๋์ค๋ก ๊ตฌํํด ๋ณด๋ฉด์ ์ฐ์ต์ ํ๊ธฐ ์ข์ ๊ฒ๋ ์๋ค.
์ด๋ ค์ด ๊ธฐ์ ์ ์ธ ๋ถ๋ถ์ ์๋ตํด์ ์ ๋ง ์๋ฃ ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ์ ์ด์ ์ ๋ง์ถ ์ ์๋ค๋ ์ ์์ ์ข์๋ค.
์๋ฅผ ๋ค๋ฉด, 8์ฅ์ ํด์ฌ์ ๋ํด์ ๋ค๋ฃจ๋๋ฐ ํด์ฌ function์ ๊ตฌํํ๋ ์๊ณ ๋ฆฌ์ฆ(Horner's method)์ ์ํ์ ์ธ ๋ถ๋ถ์ ์ด์ ์ ๋ง์ถ๋ ๊ฒ๋ณด๋ค๋ ์ด๋ป๊ฒ ํ์ฉํด์ ์ฌ์ฉํ์ง ์์์ ๊ฒฝ์ฐ ๋๋น ์ฅ์ ์ ๋ถ๊ฐํ๋ค. ๊ถ๊ธํ๋ฉด ๋๋ฑ ๊ตฌ๊ธ๋งํ chatgpt์๊ฒ ๋ฌผ์ด๋ณผ ์ ์์ง๋ง, ์ข
์ข
๊ทธ๋ฐ ํ ๋ผ๊ตด์ ํํน๋ผ์ ๊ธธ ์๋ ๋๊ฐ์ ๋
์๋ค์ ๋ฐฐ๋ คํด ์ค ๊ฑฐ ๊ฐ์์ ์ฅ์ ์ผ๋ก ๋ค๊ฐ์จ๋ค.
ํญ์ ์ด์ง ํ์ ํธ๋ฆฌ์ ์ํ ๋ฐฉ์์ ๋ฌ๋ฌ ์ธ์ฐ๊ณ ์์๋๋ฐ ์์ ๋ฅผ ํตํด ์ด๋ป๊ฒ ๋์ํ ์ง ์๊ฐํด ๋ณด๊ณ ์ฝ๋๋ฅผ ์งค ์ ์์ด์ ์ข์๋ค. ๋จ์๋ค์ ๊ธฐ์ค์ผ๋ก ์๊ณ ๋ฆฌ์ฆ๊ณผ ์๋ฃ ๊ตฌ์กฐ์ ๋ํ ํ์ ์ก๊ธฐ ์ข์ ์ฑ
์ด๊ธฐ๋ ํ๋ค.
์๊ณ ๋ฆฌ์ฆ๊ณผ ์๋ฃ๊ตฌ์กฐ์ ๋ํ ๊ณต๋ถ๋ฅผ ํ๋ฒ ํด๋ดค๋๋ฐ ์ ๋ฆฌ๋ฅผ ํด๋ณด๊ณ ์ถ๊ฑฐ๋, ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ฝ๋๋ฅผ ์ง๋ณด๊ณ ์ถ์ ์ฌ๋๋ค์๊ฒ ํ ๋ฒ์ฏค ์ฝ์ด๋ณผ ๋งํ ์ฑ ์ด๋ผ๊ณ ํ ์ ์๋ ๊ฑฐ ๊ฐ๋ค.
์ฝ๊ธฐ ์ ๊ณผ ํ์ฌ ์ฝ๊ณ ์๋ ์์ ์ ์๊ฐ ๋ณํ
์ฝ๊ธฐ์ ์๋ ์๊ณ ๋ฆฌ์ฆ๊ณผ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ์ง์ ์ ์ฉํ๊ฒ ์ฐ์ผ ์๋๋ฆฌ์ค๋ฅผ ํฌ๊ฒ ๊ธฐ๋ํ๋ ๊ฑฐ ๊ฐ๋ค.
ํ์ง๋ง ํ์ฌ๋ ์ฝ๊ฐ ๊ธฐ๋ณธ๊ธฐ ์ ๊ฒ์ ํ๋ ๋๋์ผ๋ก ์ฑ ์ ์ฝ๊ณ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ์ ๊ณต๋ถํ๋ ๊ฒ๋ค์ด ์๋ก์๋ก ์๊ฐ๋์ ๋ค์ ์ ๋ฆฌ๋ฅผ ํด๋ด์ผ๊ฒ ๋ค๋ ์๊ฐ๋ ๋ค์๋ค. ์๋ฅผ ๋ค๋ฉด, ์๋ฐ์คํฌ๋ฆฝํธ ์์ง ์ต์ ํ์ ๋ํด ์ด์ ์ ๊ณต๋ถํ ์ ์ด ์์๋๋ฐ, v8 ์์ง์ผ๋ก ๋์๊ฐ๋ ํฌ๋กฌ ๋ธ๋ผ์ฐ์ ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ก ๋ฐฐ์ด ์ต์ ํํ๊ธฐ ์ํด์๋, ๋ฐฐ์ด์ ์ด๋ค ์์ผ๋ก ๋ค๋ค์ผ ํ๋์ง ๊ณต๋ถํ๋ ๊ฒ์ด ๊ฐ๋ฌผ๊ฐ๋ฌผํด์ ๋ค์ ์ดํด๋ด์ผ ํ ๊ฑฐ ๊ฐ๋ค๊ณ ์๊ฐํ๋ค.
์ง๊ธ์ ๊ฐ๋ฌผ๊ฐ๋ฌผํ๋ฐ ๊ตฌ๊ธ์ ์์์์ ์ต์ ํ ๋์ ๋ณด๋ ค๋ฉด ๋ฐฐ์ด์ ์ ์ธํ ๋ ํต์ผ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์ผ ํ๋ ํด๋์ค๋ฅผ ์จ๋จน์ ์ ์๋ค๋ ๊ฑธ ๋ ์ฌ๋๋ค. ์ด ์ฑ ์์๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด์ ์๋ฐ๋ c++์์ ๋ณด๋ ๋ฐฐ์ด๊ณผ๋ ๋ฌ๋ฆฌ ๊ฐ์ฒด๋ผ๋ ์ ์ ์ธ๊ธํ๋ค.
๊ฐ์๊ธฐ "์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด๋ ๊ฐ์ฒด๋ค"์์ ์์ฒญ ๋ฌ๊ธ์๋ ์๊ฐ๊น์ง ๋ป์ด์๋ค๊ณ ์๊ฐ์ด ๋ค ์๋ ์์ง๋ง, ๋ฒ ์ด์ค ๋ถ๋ถ์์๋ ์ด์ ์ ๊ณต๋ถํ๋ ๊ฒ๋ค์ ๋ ์ฌ๋ฆฌ๊ฒ ํด ์ค์ ์ข์ ์ฑ ์ธ ๊ฑฐ ๊ฐ๋ค.
๋ค๋ง ์ด ์ฑ ์ด ๋ ๊น์ด ์๋ ๊ฒ์ ํ๊ณ ๋ค๋ฉฐ ์ดํด๋ด์ผ ํ๋ ์์ญ์ ๋ค๋ฃจ์ง ๋ชปํด์ ์ข ์์ฌ์ด ์ ์ ์๋ค.
๊ทธ ๋ถ๋ถ์ ๋ํด์๋ ์ฑ ์๋ ํ ๋ ๋์ด๋ ์๋ ์ฑ ๋ค์ ์ดํด๋ณด๊ฑฐ๋, ์ด์ ๊ณต๋ถํด ๋ดค๋ ๊ฒ๋ค ์ค ๊ธฐ์ต์ด ํ๋ฆฟํด์ง ๊ฒ๋ค์ ๋ค์ ํ๋ด์ผ๊ฒ ๋ค.
ํ๋ฃจ 1๋จ์์ฉ ์ฝ์ด์๋๋ฐ, ์ด์ 3-4์ผ ์ด๋ฉด ์๋ ! ๐ฅณ