๐ฟ Data/๋ถํธ์บ ํ
[TIL] 99. [์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ
ํค์๋ ์๊ณ ๋ฆฌ์ฆ ์ ๋ ฌ ๋ฒ๋ธ์ ๋ ฌ ์ฝ์ ์ ๋ ฌ ์ ํ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ๊ตฌ๊ตฌ๋จ์ ์์๋ก ๋ ๋ค๋ฉด ๊ตฌ๊ตฌ๋จ์ ์ซ์๋ค์ ์๋ฃ๊ตฌ์กฐ, ๊ณฑ์ ์ ์๊ณ ๋ฆฌ์ฆ์ ํด๋น ์ฆ, ์๋ฃ๊ตฌ์กฐ๋ ๊ธฐ๋ฐ, ์๊ณ ๋ฆฌ์ฆ์ ๋ฐฉ๋ฒ [์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ ๋ง ๊ทธ๋๋ก ์๋ฃ๋ค์ ์ผ์ ํ ๊ท์น์ ๋ง๊ฒ ์ ๋ฆฌํ๋ ์๊ณ ๋ฆฌ์ฆ(๋ณดํต์ ์ค๋ฆ์ฐจ์) [์ ๋ ฌ] ๋ฒ๋ธ์ ๋ ฌ(Bubble Sort) ์ค๋ฅธ์ชฝ๋ถํฐ ์ ๋ ฌ๋๋ฉฐ ๋ง์น ๊ฑฐํ์ด ์ฌ๋ผ์ค๋ ๋ชจ์ ์๋ก ์ด์ํ ๋ ์์ ํฌ๊ธฐ๋ฅผ ๋น๊ตํ๊ณ ๊ตํ์ ๋ฐ๋ณต ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ค ๊ฐ์ฅ ๊ฐ๋จํ ์๊ณ ๋ฆฌ์ฆ์ด๋ฉฐ ์ฌ์ค์ ๊ฐ์ฅ ๋นํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ 1๋ฒ์งธ ํญ๋ชฉ๊ณผ 2๋ฒ์งธ ๋น๊ต ํ 1๋ฒ์งธ๊ฐ ๋ ํฌ๋ฉด ํญ๋ชฉ ๊ต์ฒด 2๋ฒ์งธ, 3๋ฒ์งธ ~ ์ญ 1๋ฒ์ฒ๋ผ ๋ฐ๋ณต (ํ๋ฒ์ ์ฌ์ดํด์ ๋ง์น๋ฉด ๊ฐ์ฅ ๋์๋ ๊ฐ์ฅ ํฐ ๊ฐ์ด ์์นํ๊ฒ ๋จ. ๋ฐ๋ผ์ ๊ฐ์ฅ ๋๋จ์ ๋ ์๋ด๋ ๊ด์ฐฎ๋ค.) ํ ์ฌ์ดํด์ ๋๊ณ ๋๋ฉด ๋ง์ง๋ง์ ..
[TIL] 98. [์๋ฃ๊ตฌ์กฐ] ํธ๋ฆฌ
ํค์๋ ๋น์ ํ ๊ตฌ์กฐ ์ด์งํธ๋ฆฌ ์ด์งํ์ํธ๋ฆฌ ํธํฅ์ด์งํธ๋ฆฌ [์๋ฃ๊ตฌ์กฐ] ํธ๋ฆฌ ๋ฃจํธ(root) : ํธ๋ฆฌ์ ๊ฐ์ฅ ์์ชฝ์ ์๋ ๋ ธ๋, 1๊ฐ๋ง ์กด์ฌ ๋ฆฌํ(leaf) : ํธ๋ฆฌ์ ๊ฐ์ฅ ์๋ซ๋จ์ ์๋ ๋ ธ๋(๊ฐ์ฅ ๋์๋ฝ) ์๋ธํธ๋ฆฌ(sub tree) : ํฐ ํธ๋ฆฌ์์ ์์ ํธ๋ฆฌ๋ฅผ ์ชผ๊ฐ์ ๋ณด๋ ๊ฒ(์์๋ ธ๋์ด๋ฉด์ ๋ถ๋ชจ์ญํ ์ ํ๋ ๋ ธ๋๊ฐ ์๋ ํธ๋ฆฌ) ์ฐจ์ : ๋ ธ๋๊ฐ ๊ฐ๊ณ ์๋ ์ต๋ ์์ ๋ ธ๋ ์ ๋ ๋ฒจ : ๋ฃจํธ ๋ ธ๋๋ฅผ 0์ผ๋ก, ์๋๋ก ํ๋จ๊ณ์ฉ +1 ๋์ด : ์ ์ผ ๋๋จ ๋ ธ๋์ ๋ ๋ฒจ๊ณผ ๋ฃจํธ ๋ ธํธ ๋ ๋ฒจ์ ์ฐจ์ด ํ์ ๋ ธ๋(sibling) : ๋ถ๋ชจ๊ฐ ๊ฐ์ ๋ ธ๋ [ํธ๋ฆฌ] ์ด์งํธ๋ฆฌ ๊ฐ ๋ ธ๋ ๋ณ๋ก, ์ต๋ 2๊ฐ์ ์๋ธ๋ ธ๋๋ฅผ ๊ฐ์ง ์ ์์(left์ right) ํธ๋ฆฌ ์ค ๊ฐ์ฅ ๊ธฐ๋ณธ์ด๋ฉด์ ๊ฐ์ฅ ๋ง์ด ํ์ฉ ํฌํ์ด์งํธ๋ฆฌ : ๋ชจ๋ ๋ฆฌํ๋ ธ๋๋ค์ด ๋์ผํ ๋ ๋ฒจ์ ..
[TIL] 97. ์ฌ๊ท(Recursion)
ํค์๋ ์ํ์ ์ฌ๊ณ ์ฌํธ์ถ ๋ก์ง ์ฌ๊ท ํธ์ถ -> ์คํ์ ๊ฐ๋ (ํจ์ ๋ด๋ถ) ๋ฒ ์ด์ค ์ผ์ด์ค ์ถ๊ฐ ์กฐ๊ฑด ์ฌ๊ท(Recursion) ์๊ธฐ ์์ ์ ์ฌํธ์ถ ํ๋ ๊ฒ, ์ข ๋ฃ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋ ๋๊น์ง ๋ฐ๋ณต ์ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ฌํธ์ถ ๋ก์ง ๊ธฐ์ต(์ถ๊ฐ ์กฐ๊ฑด) ์ฌ๊ทํจ์๋ฅผ ๋ฉ์ถ๋ base case(๋ฐ๋ณต์ ์ค์งํ๋ ์กฐ๊ฑด) ํ์ ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํด๊ฒฐํ ์ ์์ ๋๊น์ง ๋ ์์ ํ์ ๋ฌธ์ ๋ก ๋๋๋ ๊ฒ ์ฌ๊ท ์์ def sum_list(items): if len(items) == 1: return items[0] # base case -> ์ฌ๊ทํจ์ ์ข ๋ฃ else: return items[0] + sum_list(items[1:]) # ์ถ๊ฐ ์กฐ๊ฑด -> ์ฌํธ์ถ ๋ก์ง [์ฌ๊ท] ์กฐ๊ฑด base case(๊ธฐ๋ณธ ์ผ์ด์ค)๊ฐ ์์ด์ผ ํ๋ค. ์ถ๊ฐ ์กฐ๊ฑด์ ๋..
[TIL] 96. ์ถ์ ์๋ฃํ(Abstract Data Type ; ADT)
ํค์๋ ADT(์ถ์์๋ฃํ) ์ฐ๊ฒฐ๋ฆฌ์คํธ ์คํ/ํ ์ถ์์๋ฃํ(ADT) ํ์ด์ฌ์๋ ๊ธฐ๋ณธ ์๋ฃํ์ธ ์ซ์, ๋ฌธ์์ด, ๋ฆฌ์คํธ, ๋์ ๋๋ฆฌ ๋ฑ์ด ์กด์ฌ ADT๋ ๊ธฐ๋ณธ ์๋ฃํ์ฒ๋ผ ๋ก์ง์ด ๊ตฌ์ฑ๋์ด์๋ ์๋ฃ๊ฐ ์๋ ํ์ํ ๊ธฐ๋ฅ๋ง ์ฌ์ฉ์๊ฐ ์ง์ ๊ตฌํํ ๋ก์ง ์ถ์ํ : ์ํํธ์จ์ด๊ฐ ๋ฐ์ ํจ์ ๋ฐ๋ผ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ๋ ๋ณต์ก๋๊ฐ ์ฆ๊ฐํ์๊ณ ์ด๋ฐ ๋ถ๋ถ์ ๊ฐ๋จํ๊ฒ ํต์ฌ๋ง ์ค๋ช ํ๋ ๊ฒ ์ฐ๊ฒฐ๋ฆฌ์คํธ(Linked-list) ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ ๊ฐ ๋ ธ๋๊ฐ 1. ๋ณธ์ธ์ ๊ฐ, 2. ๋ค์ ๋ ธ๋์ ๋ํ ์ ๋ณด ๋ฅผ ๋ด๊ณ ์๋ค. ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๋๋ ํค๋ ๋ ธ๋๋ถํฐ ์์ฐจ์ ์ผ๋ก ๊ฑฐ์ณ์ผํ๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด๋ณด๋ค ์๊ฐ๋ณต์ก๋๊ฐ ํฌ์ง๋ง ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ/์ ๊ฑฐํ ๋, ๋ ธ๋ ์ฌ์ด์ ๋งํฌ๋ง ๋ฐ๊ฟ์ฃผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋ ๋น ๋ฅด๋ค.(์ฐ๊ฒฐ๋ฆฌ์คํธ์ ์ฅ์ ) ๋จ๋ฐฉํฅ, ์๋ฐฉํฅ, ํํ ์ฐ๊ฒฐ๋ฆฌ์คํธ๊ฐ ์กด์ฌ ๋ฐฐ์ด๊ณผ ๋ฌ..
[TIL] 95. python ์๋ฃ๊ตฌ์กฐ ๋ฐ ์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ณธ
ํค์๋ ์๋ฃ๊ตฌ์กฐ ์๊ณ ๋ฆฌ์ฆ ๋ณต์ก๋, Big O ์๋ฃ๊ตฌ์กฐ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ค์ํ ๊ตฌ์กฐ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ ๋ฆฝํ๊ธฐ ์ํด ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ณ๋ก ๋ค์ํ ์๋ฃํ์ด ๋ฐ์ ๊ทธ ์ค ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํํ๋ก ๋ฐฐ์ด์ด ๋ฑ์ฅํ์๊ณ , ํ์ด์ฌ์์๋ ๋ฆฌ์คํธ์ ํํ์ ํตํด ๋ฐฐ์ด์ ๊ตฌํ [์๋ฃ๊ตฌ์กฐ] ๋ฆฌ์คํธ(in python) ํ์ด์ฌ์์์ ๋ฆฌ์คํธ๋ ๋ฐฐ์ด๊ณผ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ํน์ง์ ๋ชจ๋ ๊ฐ๊ณ ์์ ์ผ๋ฐ์ ์ธ ์๋ฃ๊ตฌ์กฐ์ ๋ฐฐ์ด : ์ธ๋ฑ์ค๋ฅผ ํตํด ๋ ธ๋์ ์ ๊ทผ ๊ฐ๋ฅ ์ฐ๊ฒฐ๋ฆฌ์คํธ : ์ธ๋ฑ์ค์ ํฌ๊ธฐ๋ฅผ ์์ ๋กญ๊ฒ ํ์ฅ ๊ฐ๋ฅ, ์๋ก ๋ค๋ฅธ ์๋ฃํ์ ๊ฐ์ง ์ ์์ ์๊ณ ๋ฆฌ์ฆ ์ปดํจํฐ์ ๋ด๋ฆฌ๋ ๋ช ๋ น์ ์ ์ฐจ ์ฒ๋ฆฌ์ ๋์์ด ๋๋ ๊ฒ์ ์ ๋ ฅ๊ฐ ๋ฐ์ดํฐ ๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ํ ์ฌ์ฉ(๋ณ์, ํจ์, ํด๋์ค ๋ฑ์ ๊ฐ์ฒด๋ก ์ ์ฅ) ๋ณต์ก๋ ๊ณต๊ฐ ๋ณต์ก๋ : ์ผ๋ง๋ ๋ง์ ์ ..