๐ฎ ์จ-์์ค
[์ค์ํํธ ๋์์ธํจํด] ํ
ํ๋ฆฟ ๋ฉ์๋ ํจํด(Template Method Pattern)
[์ค์ํํธ ๋์์ธํจํด] ํ ํ๋ฆฟ ๋ฉ์๋ ํจํด(Template Method Pattern)
2022.04.23ํ
ํ๋ฆฟ ๋ฉ์๋ ํจํด ํ
ํ๋ฆฟ ๋ฉ์๋ ํจํด์ ์๊ณ ๋ฆฌ์ฆ์ ๊ณจ๊ฒฉ์ ์ ์ํฉ๋๋ค. ํ
ํ๋ฆฟ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์๊ณ ๋ฆฌ์ฆ์ ์ผ๋ถ ๋จ๊ณ๋ฅผ ์๋ธํด๋์ค์์ ๊ตฌํํ ์ ์์ผ๋ฉฐ, ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌ์กฐ๋ ๊ทธ๋๋ก ์ ์งํ๋ฉด์ ์๊ณ ๋ฆฌ์ฆ์ ํน์ ๋จ๊ณ๋ฅผ ์๋ธํด๋์ค์์ ์ฌ์ ์ํ ์๋ ์์ต๋๋ค. - ํค๋ํผ์คํธ ๋์์ธ ํจํด ํ
ํ๋ฆฟ ๋ฉ์๋ ํจํด์ ๋จ๊ณ์ ์ธ ๊ณผ์ ์ ๊ฐ์ง๊ณ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ์ถ์์ ์ผ๋ก ์ ์ํ๊ณ , ๊ทธ ์ค ์ผ๋ถ๋ฅผ ์๋ธ ํด๋์ค์์ ํ์์ ๋ฐ๋ผ ์ง์ ๊ตฌํํ ์ ์๊ฒ ํฉ๋๋ค. ๋ง์ฝ ์ฐ๋ฆฌ๊ฐ ํ์๊ฐ์
์ ๊ตฌํํ๋ค๊ณ ํ๋ค๋ฉด, ์๋์ฒ๋ผ ๋จ๊ณ๋ฅผ ๋๋ ์ ์๊ฒ ์ฃ . ์์ด๋๋ฅผ ์
๋ ฅ๋ฐ๋๋ค. ์ค๋ณต๊ฒ์ฌ๋ฅผ ํ๋ค. ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅ๋ฐ๋๋ค. ๋น๋ฐ๋ฒํธ ๊ท์น์ ํ์ธํ๋ค. ๋น๋ฐ๋ฒํธ๋ฅผ ๋ค์ ์
๋ ฅ๋ฐ๋๋ค. ๋ ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ๋์ง ํ์ธํ๋ค. ๊ฐ์
์๋ฃ๋ฅผ ํ์ํ๋ค. ์ด ๋, ๋ง์ฝ ์ํฉ์ ๋ฐ..
[์ค์ํํธ ๋์์ธํจํด] ๋ฐ๋ณต์ ํจํด(Iterator Pattern)
[์ค์ํํธ ๋์์ธํจํด] ๋ฐ๋ณต์ ํจํด(Iterator Pattern)
2022.04.23๋ฐ๋ณต์ ํจํด(Iterator Pattern) ๋ฐ๋ณต์ ํจํด์ ์ปฌ๋ ์
์ ๋ด๋ถ ๊ตฌํ์ ๋
ธ์ถํ์ง ์์ผ๋ฉด์ ์ปฌ๋ ์
์ ๋ชจ๋ ์์์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ณต์ ํจํด์ ์ปฌ๋ ์
๊ฐ์ฒด๋ก๋ถํฐ ๋ฐ๋ณต์ ์ผ๋ก ์ปฌ๋ ์
์์์ ์ ๊ทผํ๋ ์ญํ ์ ๋ถ๋ฆฌํด๋ด๋ ํจํด์
๋๋ค. ๋ฐ๋ณต์ ํจํด์ ์ฌ์ฉํ๋ฉด ์ปฌ๋ ์
์ ์์ ์ ์์๋ค์ ๊ด๋ฆฌํ๋ ์ญํ ์๋ง ์ง์คํ ์ ์๊ณ , ์ด๋ค ์์ฒญ์ ์ํด ํน์ ํ ์์๋ฅผ ์ธ๋ถ๋ก ์๋ ค์ฃผ๋ ์ฑ
์์ Iterator์๊ฒ ๋ชจ๋ ๋งก๊ธธ ์ ์๊ฒ ๋์ฃ . ์ ์์์๋ ์ปฌ๋ ์
์ ๋ด๋ถ ๊ตฌํ์ ์ธ๋ถ๋ก ๋
ธ์ถํ์ง ์๋๋ค๊ณ ํ๋๋ฐ์, ์ด ์๋ฏธ๋ ์ค์ ๋ก ์ฌ์ฉ๋๋ ์ปฌ๋ ์
์ด ๋ฐฐ์ด์ธ์ง, ๋ฆฌ์คํธ์ธ์ง์ ๊ฐ์ ์ค์ ๊ตฌ์กฐ์๋ ์ ํ ์๊ด์์ด ๊ฐ ์์๋ค์ ์ ๊ทผ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฅ Iterator๋ฅผ ๋ฐ์์ ๋์ ๋๋ฌํ ๋๊น์ง ๋ค์ ์์..
[์ค์ํํธ ๋์์ธํจํด] ์ปค๋งจ๋ ํจํด(Command Pattern)
[์ค์ํํธ ๋์์ธํจํด] ์ปค๋งจ๋ ํจํด(Command Pattern)
2022.02.20์ปค๋งจ๋ ํจํด(Command Pattern) The command pattern encapsulate a request as an object, thereby letting you parameterize other objects different requests queue or log request and support undoable operation ์ปค๋งจ๋ ํจํด์ ์ด๋ค ๊ฐ์ฒด๋ก ๋ณด๋ด๋ ์์ฒญ์ ์บก์ํํ๋ ํจํด์
๋๋ค. ๋ฐ๋ผ์ ์์ฒญ์ ๋ณด๋ด๋ ๊ฐ์ฒด๋, ์์ฒญ์ ๋ฐ๋ ๊ฐ์ฒด์ ์๊ด์์ด ์์ฒญ ์์ฒด๋ฅผ ๊ฐ์ฒด๋ก ์บก์ํ ํ๋ ํจํด์ด์ฃ . ์ด๋ ๊ฒ ์์ฒญ์ ์บก์ํ ํ๋ค๋ฉด, ์ด๋ค ์์
์ ๋ํ ์์ฒญ๋ค์ ๊ฐ์ฒด๋ก ๋ง๋ค์ด ๋๊ณ , ํ์์ ๋ฐ๋ผ์ ๊ฐ์ฒด์๊ฒ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ฒญ์ ๋ํ ๊ฐ์ฒด๋ค์ ๋ฆฌ์คํธ์ ๋ด์๋๋ฉด ์ด๋ค ์ ์ฐจ์ ..
[์ค์ํํธ ๋์์ธํจํด] ์ฑ๊ธํค ํจํด(Singleton Pattern)
[์ค์ํํธ ๋์์ธํจํด] ์ฑ๊ธํค ํจํด(Singleton Pattern)
2022.02.12์ฑ๊ธํค ํจํด(Singleton Pattern) The singleton pattern ensures a class has only one instance and provides a global point of access to it. ์ค๋์ ํญ์ ๋
ผ๋์ ์ค์ฌ์ ์๋ ์ฑ๊ธํค ํจํด์ ๋ํด์ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค..! ์ฑ๊ธํค ํจํด์ ๊ฐ์ฒด์ ์ธ์คํด์ค๊ฐ ํ ๋ฒ ๋ง๋ค์ด์ง ์ดํ์๋ ํด๋น ๊ฐ์ฒด์ ๋ํ ์๋ก์ด ์ธ์คํด์ค๊ฐ ์ ๋ ๋ง๋ค์ด์ง์ง ์๋๋กํ๋ ๋์์ธ ํจํด์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ์์ญ์์ ํด๋น ์ธ์คํด์ค์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋๋ก ํฉ๋๋ค. ์ฑ๊ธํค ํจํด์ ์๋ฆฌ ์ฑ๊ธํค ํจํด์ ํต์ฌ์ ๋จ ํ๋์ ์ธ์คํด์ค๋ง ์ฒ์์ ์์ฑํ๊ณ , ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ฑํ ์ ์๋๋ก ํ๋ ๊ฒ์ ์์ต๋๋ค. ๊ทธ๋ผ ์ด๋ป๊ฒ ํ ์ ์์๊น์? ๋จผ์ ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ฑํ ..
[์ค์ํํธ ๋์์ธํจํด] ์ถ์ ํฉํ ๋ฆฌ ํจํด(Abstract Factory Pattern)
[์ค์ํํธ ๋์์ธํจํด] ์ถ์ ํฉํ ๋ฆฌ ํจํด(Abstract Factory Pattern)
2022.02.10์ถ์ ํฉํ ๋ฆฌ ํจํด The abstract factory pattern provides an interface of creating families of related or dependent objects without specifying their concrete classes. ์ด์ ํฌ์คํธ์์ ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ๋ํด ์ ๋ฆฌํด๋ณด์๋๋ฐ์, ์ถ์ ํฉํ ๋ฆฌ ํจํด์ ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด๊ณผ ์์ฃผ ์ ์ฌํฉ๋๋ค. ๋ ๋์์ธ ํจํด์ ์ฐจ์ด๋ฅผ ์ด์ผ๊ธฐ ํ๋ค๋ฉด ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ํ๋์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ฌ์ฉํ๊ณ , ์ถ์ ํฉํ ๋ฆฌ ํจํด์ ์ฌ๋ฌ๊ฐ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ค๊ณ ํ ์ ์์ด์. ์ฌ์ค ๊ธฐ์ ์ ์ผ๋ก๋ ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด๊ณผ ์ถ์ ํฉํ ๋ฆฌ ํจํด์ด ๋ค๋ฅธ ์ ์ด ์์ด์. ์์กด์ฑ ์ฃผ์
๊ด์ ์์๋ ๊ฐ์ ์ญํ ์ ํ๊ธฐ ๋๋ฌธ์ด์ฃ . ํ..
[์ค์ํํธ ๋์์ธํจํด] ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด(Factory Method Pattern)
[์ค์ํํธ ๋์์ธํจํด] ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด(Factory Method Pattern)
2022.02.09ํฉํ ๋ฆฌ ํจํด (Factory Pattern) ๋จผ์ ํฉํ ๋ฆฌ ํจํด์ ๋ํด์ ์ ๋ฆฌํด๋ด
์๋ค. ํฉํ ๋ฆฌ ํจํด์ ์ด๋ค ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋, ๊ทธ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ฒด์์ ์ง์ ๊ฐ์ฒด์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ, ํฉํ ๋ฆฌ๋ผ๋ ๊ฐ์ฒด์๊ฒ ๊ทธ ์์
์ ๋งก๊ฒจ ์์กด์ฑ์ ์ฃผ์
๋ฐ๋ ๋ฐฉ๋ฒ์
๋๋ค. ํฉํ ๋ฆฌ ํจํด์ ์ ํ์ํ ๊น์? ํฉํ ๋ฆฌ ํจํด์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ๊ฐ์ฒด์ ์์ฑ์ ํ ๋ฒ ์บก์ํํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ์ด๋ ๊ฒ ์บก์ํํ์ ๋๋ ๋ ๊ฐ์ง ํจ๊ณผ๋ฅผ ์ป์ ์ ์๋๋ฐ์, ์ฒซ๋ฒ์งธ ํจ๊ณผ๋ ์ธ์คํด์ค์ ์์ฑ์ ๋น์ฆ๋์ค ๋ก์ง์ด ๋ผ์ด์์ ๋, ์ด ๋ก์ง์ ์์กด์ฑ์ ๊ฐ์ง๋ ๊ฐ์ฒด๋ก๋ถํฐ ๋ถ๋ฆฌํ ์ ์๋ค๋ ๊ฒ์ด๊ณ , ๋๋ฒ์งธ ํจ๊ณผ๋ ๋คํ์ฑ์ ํตํด ์ธ์ ๋ ์ง ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ํฉํ ๋ฆฌ๋ฅผ ์ ์ฐํ๊ฒ ๋ณ๊ฒฝํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ๋ง์ฝ ์ด๋ค ์ธ์คํด์ค๋ฅผ ๋ง๋๋ ๊ณผ์ ์ด ๋ฐ๋๋ค๊ณ ..
[์ค์ํํธ ๋์์ธํจํด] ๋ฐ์ฝ๋ ์ดํฐ ํจํด(Decorator Pattern)
[์ค์ํํธ ๋์์ธํจํด] ๋ฐ์ฝ๋ ์ดํฐ ํจํด(Decorator Pattern)
2022.02.08๋ฐ์ฝ๋ ์ดํฐ ํจํด(Decorator Pattern) Decorator pattern attatches additional repsonsibilities to an object dynamically. ๋ฐ์ฝ๋ ์ดํฐ ํจํด์ด ๋ฌด์์ผ๊น์? ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ์ด๋ค ๊ฐ์ฒด์ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ (๋ฉ์๋ ํธ์ถ) ๊ทธ์ ๋ํ ์๋ต์ผ๋ก ์ด๋ค ๋์์ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ฒ๋ฉ๋๋ค. ๋ฐ์ฝ๋ ์ดํฐ ํจํด์ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฉ์๋์ ๋์์ ์ถ๊ฐํด ๋ฐํ์์ ํด๋น ๊ฐ์ฒด์ ์ฝ๋๋ฅผ ์์ ํ์ง ์๊ณ ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ํํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๊ฒ ํ๋ ํจํด์
๋๋ค. ๋ฐํ์ ํ์์ ์๋ก์ด ๋์์ ์ถ๊ฐํ ์ ์๋๋ก ํ๊ธฐ ์ํด์ ๋ฐ์ฝ๋ ์ดํฐ ํจํด์ ๊ฐ์ฒด๋ฅผ ํ๋ฒ ๊ฐ์ธ๋ ๋ํผ ๊ฐ์ฒด๋ฅผ ๋๊ฒ ๋ฉ๋๋ค. ์ด๋ ๊ฒ์! Concrete ๊ฐ์ฒด๋ ์๋ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ค๋ ํ์
์ด๊ณ , Wrapper๋ Con..
[์ค์ํํธ ๋์์ธํจํด] ์ ๋ต ํจํด(Strategy Pattern)
[์ค์ํํธ ๋์์ธํจํด] ์ ๋ต ํจํด(Strategy Pattern)
2022.02.02์ ๋ต ํจํด(Strategy Pattern) ์ ๋ต ํจํด์ ์๊ณ ๋ฆฌ์ฆ์ ์งํฉ(Algorithm Family)์ ์ฌ์ฉํ๋ ํ์ ํจํด์
๋๋ค. ์ฌ๋ฌ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๊ฐ ๊ฐ์ฒด๋ก ์บก์ํํ๊ณ , ๋์ผํ ๋ชฉ์ ์ ํ๋ ์๊ณ ๋ฆฌ์ฆ๋ค์ ํ๋์ ์ธํฐํ์ด์ค๋ก ๋ฌถ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ด ์๊ณ ๋ฆฌ์ฆ๋ค์ด ํด๋ผ์ด์ธํธ ๊ฐ์ฒด์์ ๊ต์ฒด๋๋ฉด์ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์๊ณ ๋ฆฌ์ฆ์ด ํด๋ผ์ด์ธํธ ๊ฐ์ฒด์ ๋
๋ฆฝ์ ์ผ๋ก ๊ตฌ์ฑ๋๊ธฐ ๋๋ฌธ์ ๋์จํ ์ฐ๊ฒฐ(Decoupling)์ ๋ง๋ค ์ ์์ฃ . ๋์จํ๊ฒ ์ฐ๊ฒฐ๋๋ค๋ ๊ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ฒด๊ฐ ์๊ณ ๋ฆฌ์ฆ์ด ๋ณํ๊ฒ ๋ ๋, ์ํฅ์ ๋ฐ์ง ์๊ฒ ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ง์ฝ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ด ์์ ๋์ด์ผ ํ๋ค๋ฉด, ์บก์ํ๋ ํด๋น ์๊ณ ๋ฆฌ์ฆ๋ง ์์ ํ๊ฒ ๋๊ณ , ๋ด๋ถ์ ์ผ๋ก ์ด๋ป๊ฒ ์์ ๋๊ณ ์ด๋ป๊ฒ ๊ตฌํ๋์ด ์๋์ง ํด๋ผ์ด์ธํธ ๊ฐ์ฒด๋ ์์ง ๋ชปํฉ๋๋ค. ์๋ฅผ..
์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 8: ์ด์ง ํ์ ํธ๋ฆฌ(Binary Search Tree)
์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 8: ์ด์ง ํ์ ํธ๋ฆฌ(Binary Search Tree)
2021.12.15์ด์ง ํ์ ํธ๋ฆฌ (BST) ์ด์ง ํ์ ํธ๋ฆฌ๋ ์ด์ง ํธ๋ฆฌ์ ๋ช๊ฐ์ง ์กฐ๊ฑด์ด ๋ ์ถ๊ฐ๋ ํธ๋ฆฌ์
๋๋ค. ์ด์ง ํ์ ํธ๋ฆฌ๋ ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํด์ผํฉ๋๋ค. 1) ์ด๋ค ๋ฃจํธ๋
ธ๋(์๋ธํธ๋ฆฌ์ ๋ฃจํธ ํฌํจ)์ ์ผ์ชฝ ์๋ธํธ๋ฆฌ์ ๋
ธ๋๋ค์ด ๊ฐ์ง ๊ฐ์ ๋ฃจํธ ๋
ธ๋๊ฐ ๊ฐ์ง ๊ฐ๋ณด๋ค ์์์ผํฉ๋๋ค. 2) ์ด๋ค ๋ฃจํธ๋
ธ๋์ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ์ ๋
ธ๋๋ค์ด ๊ฐ์ง ๊ฐ์ ๋ฃจํธ ๋
ธ๋๊ฐ ๊ฐ์ง ๊ฐ๋ณด๋ค ์ปค์ผํฉ๋๋ค. 3) ๋
ธ๋์ ๊ฐ์ผ๋ก ํธ๋ฆฌ ์ฐ์ฐ์ด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ์ค๋ณต๋ ๋
ธ๋ ๊ฐ์ ํ์ฉํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ด๋ฐ ํธ๋ฆฌ๋ ์ด์ง ํ์ ํธ๋ฆฌ๊ฐ ๋ ์ ์์ต๋๋ค. ๋ฃจํธ ๋
ธ๋์ธ 1๋ณด๋ค ํฐ ๊ฐ์ธ 2๊ฐ ์ผ์ชฝ ์์ ๋
ธ๋์ ์์นํด์๊ณ ์ผ์ชฝ ์์ ๋
ธ๋์ธ 4, 6๋ ๋ชจ๋ ์์ ์ ๋ถ๋ชจ ๋
ธ๋์ ๊ฐ๋ณด๋ค ํฌ๊ธฐ ๋๋ฌธ์
๋๋ค ๋ฐ๋ฉด์ ์ด๋ฐ ํธ๋ฆฌ๋ ์ด์ง ํ์ ํธ๋ฆฌ๊ฐ ๋ ์ ์์ต๋๋ค. ๋ฃจํธ๋
ธ๋์ธ ..
์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 7: ํธ๋ฆฌ์ ์ด์ง ํธ๋ฆฌ(Binary Tree)
์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 7: ํธ๋ฆฌ์ ์ด์ง ํธ๋ฆฌ(Binary Tree)
2021.12.15ํธ๋ฆฌ์ ์ ์ ๋จผ์ , ํธ๋ฆฌ์ ๋ํด์ ์ ์ํด๋ณด๋ฉด, ํธ๋ฆฌ๋ ๋ช๊ฐ์ง ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ทธ๋ํ์
๋๋ค. 1) ํธ๋ฆฌ์ ๊ฐ์ ์๋ ๋ฐฉํฅ์ด ์์ต๋๋ค. ์ฆ, ํธ๋ฆฌ๋ ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ์
๋๋ค. 2) ํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๋ ๋ชจ๋ ๋
ธ๋๋ ์ฐ๊ฒฐ๋์ด ์๋ ์ฐ๊ฒฐ ๊ทธ๋ํ์
๋๋ค. ์ฐ๊ฒฐ๋ ๊ฐ์ ์ค ํ๋๋ง ์ญ์ ํด๋ ์ฐ๊ฒฐ ๊ทธ๋ํ๊ฐ ๊นจ์ง๋๋ค. -> ์ฌ๊ธฐ์ ์ฐ๊ฒฐ๊ทธ๋ํ๋ ๊ทธ๋ํ์ ์์์ ๋
ธ๋ ์ฌ์ด์ ํญ์ ๊ฒฝ๋ก๊ฐ ์กด์ฌํจ์ ์๋ฏธํฉ๋๋ค. ์ด๋ค ๋
ธ๋๋ก ๊ฐ๋ ๊ฒฝ๋ก๊ฐ ์์ด์ง๋ฉด ํด๋น ๋
ธ๋๋ ํธ๋ฆฌ์ ํฌํจ๋ ์ ์๊ฒ ์ฃ ? 3) ํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ์ ์ ๊ฐ์๋ ํญ์ ๋
ธ๋์ ๊ฐ์๋ณด๋ค ํ๋ ์ ์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ์ดํด์ด ๋ฐ์ํ์ง ์์ต๋๋ค. ์ด์ง ํธ๋ฆฌ (Binary Tree) ์ด์ง ํธ๋ฆฌ๋ ํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ ๋
ธ๋๊ฐ ์ต๋ ๋ ๊ฐ์ ์์ ๋
ธ๋๋ฅผ ๊ฐ์ง๋ ํธ๋ฆฌ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด์ง ํธ๋ฆฌ์ ์ข
๋ฅ ์ด์ง ..
์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 6: ์ฐ์ ์์ ํ(Priority Queue)
์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 6: ์ฐ์ ์์ ํ(Priority Queue)
2021.12.15์ฐ์ ์์ ํ(Priority Queue) ์ฐ์ ์์ ํ๋ ํ์ ์ด์ฉํด์ ๊ฐ์ฅ ๋์ ์ฐ์ ์์์ ์๋ ์์๋ฅผ ํญ์ ์ ์ผ ์ฒ์์ ์์น์ํค๋ ํน๋ณํ ํ์
๋๋ค. ๊ฐ์ฅ ์ฐ์ ์์๊ฐ ๋์ ์์๊ฐ ํ์์ ์ ๊ฑฐ๋๋ฉด ๊ทธ ๋ค์ ์ฐ์ ์์์ ์๋ ์์๊ฐ ํ์ ์ฒซ ์์๋ก ์ด๋ํฉ๋๋ค. ์ฌ์ค ์ฐ์ ์์ ํ๋ ํ์ด ์ ๋ถ์ธ ์๋ฃ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ ํ์ ์์ง ๋ชจ๋ฅด์ ๋ค๋ฉด ์๋ ํฌ์คํธ๋ฅผ ๋จผ์ ์ฝ์ด์ฃผ์ธ์! ์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 5: ํ(Heap) ํ (Heap) ํ์ ์ด์งํธ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ค์ ๋ฐ์ ๋ ฌ ์ํ๋ก ์ ์งํ๋ ์๋ฃ๊ตฌ์กฐ์
๋๋ค. ํ์ ํธ๋ฆฌ์ ๋ฃจํธ ๋
ธ๋์ ๋ฐ์ดํฐ๋ค์ ์ต์๊ฐ ํน์ ์ต๋๊ฐ์ ์ ์ฅํ๋๋ฐ์, ์ต์๊ฐ์ ๋ฃจํธ์ ๋ ๋๋ jeonyeohun.tistory.com ์ฐ์ ์์ ์ค์ ์ฐ์ ์์ ํ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ด๋ค ๊ธฐ์ค์ผ๋ก ์ฐ์ ์์๋ฅผ ์ ..
์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 5: ํ(Heap)
์ค์ํํธ๋ก ๊ตฌํํ๋ ์๋ฃ๊ตฌ์กฐ 5: ํ(Heap)
2021.12.13ํ (Heap) ํ์ ์ด์งํธ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ค์ ๋ฐ์ ๋ ฌ ์ํ๋ก ์ ์งํ๋ ์๋ฃ๊ตฌ์กฐ์
๋๋ค. ํ์ ํธ๋ฆฌ์ ๋ฃจํธ ๋
ธ๋์ ๋ฐ์ดํฐ๋ค์ ์ต์๊ฐ ํน์ ์ต๋๊ฐ์ ์ ์ฅํ๋๋ฐ์, ์ต์๊ฐ์ ๋ฃจํธ์ ๋ ๋๋ ์ต์ํ, ์ต๋๊ฐ์ ๋ฃจํธ์ ๋๋ฉด ์ต๋ํ์ด๋ผ๊ณ ํฉ๋๋ค. ์์ ์ด์ง ํธ๋ฆฌ ์ด์ง ํธ๋ฆฌ๋ ํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๋ ๋ชจ๋ ๋
ธ๋๊ฐ ์ต๋ ๋ ๊ฐ์ ์์ ๋
ธ๋๋ฅผ ๊ฐ์ง๋ ์๋ฃ๊ตฌ์กฐ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ ์ด์ง ํธ๋ฆฌ๋ ๊ฐ ๋์ด์ ์๋ ๋ชจ๋ ๋
ธ๋๊ฐ ์์ ๋
ธ๋๋ฅผ ๊ฐ์ ธ์ผ ๋ค์ ๋์ด์ ์ ๋
ธ๋๋ฅผ ์ถ๊ฐํ ์ ์๊ณ , ๊ฐ์ฅ ์ผ์ชฝ๋ถํฐ ์ฐจ๋ก๋๋ก ๋
ธ๋๋ฅผ ์ฑ์์ผํฉ๋๋ค. ์ด๋ฐ ์ด์ง ํธ๋ฆฌ๋ ๋ฐฐ์ด๋ก๋ ๊ตฌํ์ด ๊ฐ๋ฅํ๋ฐ์, ๋ฃจํธ ๋
ธ๋๋ฅผ ์ธ๋ฑ์ค 1๋ก ์ผ์ผ๋ฉด ์ด๋ค index ๋ฒ์งธ ๋
ธ๋์ ์ผ์ชฝ ์์ ๋
ธ๋๋ index * 2, ์ค๋ฅธ์ชฝ ์์ ๋
ธ๋๋ (index * 2) + 1 ๋ก ๊ตฌํ ์ ..