ํฐ์คํ ๋ฆฌ ๋ทฐ
์๋ฃ ๊ตฌ์กฐ(Data Structure), ์๊ณ ๋ฆฌ์ฆ(Algorithms) ๊ทธ๊ฒ ๋ญ์ผ... ?
Horang๐ฏ 2024. 1. 16. 21:57ํ๋ก๊ทธ๋๋ฐ์ ๊ณต๋ถํ๋ค๋ฉด
๋๊ตฌ๋ ํ ๋ฒ์ฏค ๋ค์ด๋ณธ ๋จ์ด๋ค์ด ๋ช ๊ฐ ์์ ๊ฒ๋๋ค.
์ ๋ ๊ทธ์ค ์ ์ผ ๋ง์ด ๋ค์ด ๋ณธ ๋จ์ด๊ฐ
๋ฐ๋ก..
"์๋ฃ ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ"
์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ด ์ค์ํ๋ค๋ ๊ฒ์
์ตํ ๋ค์ด์ ์๊ฒ ๋๋ฐ...
๊ทธ๋์ ๊ทธ๊ฒ ์ ํํ ๋ญ๋ฐ..?
๋ผ๋ ์๊ฐ์ด ๋ฌธ๋ฉ ๋ค์ด์...
์ค๋๋ถํฐ ๊ทธ ๋ ๊ฐ๋ฅผ ๊ณต๋ถํ๊ณ ๊ธฐ๋ก์ ํด๋ณด๋ ค ํฉ๋๋ค. (๊ทผ์, ์ง์ง๐ฅ)
๊ณต๋ถํ ๋ด์ฉ์ ๋ชจ๋ ๊ธฐ๋ก ํ์ง๋ ๋ชปํ๊ฒ ์ง๋ง
์ต๋ํ ์ค์ํ ๋ด์ฉ ์์ฃผ๋ก ์ผ๋ฌด์ง๊ฒ ์ฌ๋ ค ๋ณด๊ฒ ์ต๋๋ค. ๐
๊ฐ๋ณด์๊ตฌ ~
์ค๋์ ์ฒซ ๋ ์ด๋๊น !
์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ด ๋ฌด์์ธ์ง
๊ฐ๋จํ๊ฒ ์๋ณด๊ฒ ์ต๋๋ค
๐ ์๋ฃ ๊ตฌ์กฐ (Data Structures)
์๋ฃ๊ตฌ์กฐ๋
๋ง ๊ทธ๋๋ก ๋ฐ์ดํฐ๋ค์ ๋ชจ์์ ๋ปํ๋ฉฐ,
์ ํด์ง ๋ฉ๋ชจ๋ฆฌ(memory)๊ณต๊ฐ์์
์ด๋ค ๋ฐฉ์์ผ๋ก ์๋ฃ๋ค์ ์ฒ๋ฆฌํ ์ง๋ฅผ ๊ตฌ์กฐํํด์ ํํํ ๊ฒ์ ๋๋ค.
๊ฐ๋จํ๊ฒ ์๋ฅผ ๋ค์ด๋ด ์๋ค.
์ฐ์ ,
์ฃผ์ฐจ์ฅ์ ๊ฐ๋ค๊ณ ์๊ฐํด๋ด ์๋ค !
ํด๋น ์ฃผ์ฐจ์ฅ์ ๋ฉด์ ์ ์ ํด์ ธ ์์ ๊ฒ์ด๊ณ , ์ ๊ตฌ์ ์ถ๊ตฌ ๋ํ ์ ํด์ ธ ์์ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด,
์ฃผ์ฐจ์ฅ์ ์ต๋ ๋ช ๋๊น์ง ์ฐจ๊ฐ ๋ค์ด๊ฐ ์ ์์๊น์?
์๋ง๋, ๊ฐ์ฅ ๋ง์ ์ฐจ๋ฅผ ์ฃผ์ฐจํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋จผ์ ์๊ฐํด๋ด์ผ๊ฒ ์ง์.
์๋ง๋ ๊ทธ ๋ฐฉ์์..
๋ชจ๋ ์ฐจ๋์ ์ต๋ํ ๋ฐ์ ํ๊ฒ ๋ถ์ด๊ณ , ๋ฉด์ ์ ์ต๋ํ ๋ชจ๋ ์ฌ์ฉํ๋ ๊ฒ !
ํ์ง๋ง,
๋ชจ๋ ์ฐจ๋์ ์ต๋ํ ๋ถ์ฌ์ ์ฃผ์ฐจ๋ฅผ ํ๋ค๋ฉด
์ฐจ๋ค์ด ๋ค์ด๊ฐ ๋๋ ์ฝ๊ฒ ๊ฐ๋, ๋์ค๊ธฐ ์ํด์๋ ๋ฌด์ํ ๋ง์ ๋ ธ๋ ฅ์ด ๋ค์ด์ผ ํ ๊ฒ์ ๋๋ค.
๋ง์ฝ,
์ด์ด ์ข์ง ์๋ค๋ฉด ์์ ์ ์ฐจ๋ฅผ ์ฐพ๋ ๋ฐ์๋ง ๋ง์ ์๊ฐ์ ์์ํ ๊ฒ์ด๊ณ ,
์ฐจ ํ๋๊ฐ ์ฃผ์ฐจ์ฅ์ ๋น ์ ธ๋๊ฐ๊ธฐ ์ํด ๋ชจ๋ ์ฐจ๊ฐ ์์ง์ฌ์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด..
์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํด์ผํ ๊น์?
์ฃผ์ฐจ๋ฅผ ํ ๋ ์ฐจ๋ ํ๋์ ๊ณต๊ฐ์ ๋๊ฒ ์ฌ์ฉํ๊ฑฐ๋, ๊ท์น์ ๊ฐ๊ณ ์ฐจ๋์ ์ฃผ์ฐจํ๋ค๋ฉด
๋ค์ด์ค๊ณ ๋๊ฐ๊ธฐ๋ ํธํ ๋ฟ๋๋ฌ, ์์ ์ ์ฐจ๋ฅผ ์ฐพ๋ ๋ฐ์๋ ํธ์๋ฅผ ๋๋ ์ ์์ ๊ฒ๋๋ค.
(๊ท์น์ด ์์ผ๋๊น ์ฐจ๋์ ์ฐพ์ ๋ฐฉ๋ฒ์ ์ ์๊ฐํ๋ค๋ฉด ์ฝ๊ฒ ์ฐพ์ ์ ์๊ฒ ์ฃ ??)
์๋ฌดํผ !!
์๋ก ์ด ๊ฝค ๊ธธ์๋๋ฐ ...
๊ฒฐ๊ตญ ์์์ ์๋ฅผ ๋ค์๋ ์ฃผ์ฐจ์ฅ๊ณผ ์ฐจ๋
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๊ณ ์๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ค๋ช ํ๊ธฐ ์ํ ์์์์ต๋๋ค.
(๋ฅํ๊ฒ ๋ค์ด๊ฐ๋ค๋ฉด.. ์ฐจ์ด๋ ์๊ฒ ์ง๋ง
๊ฐ๋จํ๊ฒ ๊ฐ๋ ์ ์ดํดํ๋๋ฐ๋ ๋ฌด๋ฆฌ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค..!)
ํ๋ก๊ทธ๋๋ฐ์ ํ๋ฉด์
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํด์ผํ๋ ๋ฐ์ดํฐ๋ ๋ฌด์ํ ๋ง์ง๋ง, ์ปดํจํฐ์ ์์(๋ฉ๋ชจ๋ฆฌ)๋ ๋งค์ฐ ํ์ ์ ์ ๋๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ณ ,
์๋ง์ ๋ฐ์ดํฐ๋ฅผ ์๋ง๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ํ๋ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ์ ํด์ผํฉ๋๋ค.
์ด๋ ํ์ํ ๊ฐ๋ ์ด ๋ฐ๋ก ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ๐๐
ํ์ ์ ์ธ ๋ฉ๋ชจ๋ฆฌ์์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๋ค๋ฃจ๊ธฐ ์ํด ์ ๋นํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ํํ๋ค !
๊ทธ๋์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ณต๋ถํด์ผ ํ๋ค !
(ex,์๋ฃ ๊ตฌ์กฐ: ๋ฐฐ์ด, ํ, ์คํ, ๋ฆฌ์คํธ ๋ฑ)
์ด์ ์๋ฃ๊ตฌ์กฐ๊ฐ ๋ญ์ง๋ ๋์ถฉ ๋๋์ด ์์ผ๋๊น
์๋ฃ๊ตฌ์กฐ์๋ ์ด๋ค ๊ฒ๋ค์ด ์๋์ง ์ด์ง ํค์๋๋ค๋ง ๋ณด์์ฃ ?!
์์ธํ ์ค๋ช ์ ๋ค์ ๊ธ์์ ์ฐจ๋ก๋๋ก ์ค๋ช ํด๋ณด๊ฒ ์ต๋๋ค. ๐
๐ ์๊ณ ๋ฆฌ์ฆ (Algorithms)
(์๊ณ ๋ฆฌ๋ฌ์ด๋ผ๊ณ ํ๋ ๋ถ๋ค๋ ๊ณ์ ๋ฐ.. ์ ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํ ๊ฒ์ !)
์๊ณ ๋ฆฌ์ฆ์ ์ด์์..
9์ธ๊ธฐ ํ๋ฅด์์ ์ํ์ ๋๊ตฌ๋๊ตฌ์ ๋ผํด ์ด๋ฆ์ธ algorisumus์
์๋ฅธ ๋ํ๋ด๋ ๊ทธ๋ฆฌ์ค์ arithmos๊ฐ ์์ฌ ๋ง๋ค์ด์ก๋ค๋๊ฒ ์ ์ค์ด๋ผ๋๋ฐ..
(๊ถ๊ธํ์ ๋ถ์ ์ฐพ์๋ณด์ธ์ ๐ฅธ)
(์ฐธ๊ณ ๋ก, ์ธ๋ฅ ์ต์ด์ ์๊ณ ๋ฆฌ์ฆ์ ์ต๋๊ณต์ฝ์ ๊ณ์ฐ ์๊ณ ๋ฆฌ์ฆ(GCD)์ด๋์!)
์ฐ๋ฆฌ์๊ฒ ํ์ํ ๋ป์
์๊ณ ๋ฆฌ์ฆ์
๋ฌธ์ ์ ์ ๋ ฅ(input)์ ์ํ์ ์ด๊ณ ๋ ผ๋ฆฌ์ ์ผ๋ก ์ ์๋ ์ฐ์ฐ๊ณผ์ ์ ๊ฑฐ์ณ
์ํ๋ ์ถ๋ ฅ(output)์ ๊ณ์ฐํ๋ ์ ์ฐจ๋ฅผ ์๋ฏธํ๋ค๋ ๊ฒ์ ๋๋ค.
๊ฐ๋จํ๊ฒ ๋งํ๋ฉด,
์ฐ๋ฆฌ๊ฐ ํ์ด์ผ ํ๋ ๋ฌธ์ ์ ๋ํ ํ์ํ ๊ณ์ฐ ์ ์ฐจ๋ฅผ ์๋ฏธํฉ๋๋ค.
์ ๋ ฅ์ ๋ณดํต ์์์ ์ธ๊ธํ ์๋ฃ๊ตฌ์กฐ์ ์ ์ฅ์ด ๋๊ณ ,
์ ์ฅ๋ ์ ๋ ฅ ๊ฐ์ผ๋ก ๊ธฐ๋ณธ์ ์ธ ์ฐ์ฐ์ ์ฐจ๋ก๋ก ์งํํ์ฌ ์ํ๋ ์ถ๋ ฅ ๊ฐ์ ์ป์ด๋ด๋ฉด ๋๋ ๊ฒ์ ๋๋ค.
๋ณดํต ์๋ฃ๊ตฌ์กฐ๊ฐ ์ ํ์ด ๋๋ฉด ๊ทธ์ ์ ์ฉํ ์๊ณ ๋ฆฌ์ฆ๋ ๊ฑฐ์ ๋ช ํํด์ง๋ค๊ณ ํฉ๋๋ค.
(์์ง ์ ๋ ์ ๋ชฐ๋ผ์ ๐ญ)
์ฆ, ์๋ฃ ๊ตฌ์กฐ๋ฅผ ์ ์ ํํ๋ฉด ๊ทธ์ ๋ง๋ ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ๋ ๊ตฌํํ ์ ์๊ธฐ ๋๋ฌธ์
์ด ๋์ ๋งค์ฐ ๋ฐ์ ํ ๊ด๊ณ๋ฅผ ๊ฐ๊ณ ์๋ ๋๋์ผ ๋ ์ ์๋ ๊ด๊ณ์ธ๊ฒ๋๋ค.
์์ ์๋ฅผ ๋ค์ ์๊ฐํด ๋ณด๋ฉด,
์๊ณ ๋ฆฌ์ฆ์
์ฃผ์ฐจ์ฅ์ ์๋ ์ฐจ๋ค์ ์ด๋ค ์์๋ ๊ท์น์ ๊ฐ๊ณ ํด๋น ์ฐจ๋๋ฅผ ์ฐพ์ ์ง์ ๋ํ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค.
์ฌ๊ธฐ์ ๋ง์ฝ ์ฐจ ๋ฒํธ๊ฐ 0116์ ์น์ฉ์ฐจ๋ฅผ ์ฐพ๋๋ค๋ฉด,
์ฃผ์ฐจ์ฅ์ ์ฃผ์ฐจ ๋ฐฉ์(๊ตฌ์กฐ)์ ๋ฐ๋ผ ํจ์จ์ ์ผ๋ก ์ฐพ๋ ๋ฐฉ์์ด ๋ฌ๋ผ์ง๊ฒ ๋ ๊ฒ์ ๋๋ค.
์ฐจ๋๋ค์ด ์ฐจ ๋ฒํธ ์์ผ๋ก ์ฃผ์ฐจ๊ฐ ๋์ด ์๋ค๋ฉด ์์๋ฆฌ๊ฐ 0์ธ ์ฐจ๋ค์ด ์ฃผ์ฐจ๋์ด ์๋ ๊ณณ๋ถํฐ ์ฐพ์ผ๋ฉด ๋ ๊ฒ์ด๊ณ ,
ํฌ๊ธฐ ์์ด๋ผ๋ฉด ์น์ฉ์ฐจ๊ฐ ๋ชจ์ฌ ์๋ ๊ณณ์์ ์ฐจ๋ฅผ ์ฐพ์ผ๋ฉด ๋ ๊ฒ์ ๋๋ค.
์ฆ, ์์ ๊ฐ์ด ๋ณดํต์ ์๋ฃ ๊ตฌ์กฐ์ ์ ํ์ด ์๊ณ ๋์(์ฃผ์ฐจ๋ฅผ ์ด๋ป๊ฒ ํ ์ง),
ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ(์ด๋๋ถํฐ ์ฐจ๋ฅผ ์ฐพ์ ์ง)๊ฐ ์ ํ๋๋ ๊ฒ ์ ๋๋ค.
(๋ค์ ์ธ๊ธํ์๋ฉด, ์ด๋ ๊ธฐ ๋๋ฌธ์ ์๋ฃ ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ํ ๋ชธ โค๏ธ๐ฅ)
๋ํ, ์๊ณ ๋ฆฌ์ฆ์ ํ๋ก๊ทธ๋จ ๋ช ๋ น์ด๋ค์ ์งํฉ์ด๋ผ๊ณ ๋ ํฉ๋๋ค.
ํ๋ก๊ทธ๋จ์ ํน์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ๊ณผ ์์๋ฅผ ๊ธฐ๋กํ ๋ช ๋ น์ด๋ค์ ๋ชจ์์ด๊ณ ,
์ด ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ธฐ ์ํด์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆด ๋ฐ์ดํฐ๊ฐ ํ์ํ๋ฉฐ ์ด ๋ฐ์ดํฐ๋ค์ ๋ด์๋ด๋ ๋ฐฉ์์ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
์ฆ, ๋์ ์๋ฏธ์์ ์๋ฃ๊ตฌ์กฐ + ์๊ณ ๋ฆฌ์ฆ(+a) = ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๊ทธ๋ผ ์ด์ ,
์ฐ๋ฆฌ๋ ์ด๋ค ์๋ฃ๊ตฌ์กฐ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์ข์ ์ง ์ฑ๋ฅ์ ๋น๊ตํ ์ค ์์์ผ ํฉ๋๋ค.
๊ทธ๋ฌ๊ธฐ ์ํด์๋ ์๊ฐ ๋ณต์ก๋๋ผ๋ ๊ฐ๋ ์ ์์์ผ ํฉ๋๋ค.
์๊ฑด ๋ค์ ๊ธ์์ ์ค๋ช ๋๋ฆฌ๊ฒ ์ต๋๋ค ๐
๊ทธ๋ผ 20000 ~
์๋ชป๋ ๋ด์ฉ์ด๋ ๊ถ๊ธํ์ ์ ์ด ์๋ค๋ฉด ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์. ๐ค
์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๐ ์ฐธ๊ณ ์๋ฃ
https://bnzn2426.tistory.com/115
https://velog.io/@dpdms0109/์๋ฃ๊ตฌ์กฐ-์๋ฃ๊ตฌ์กฐ๋-๋ฌด์์ธ๊ฐ
https://m.hanbit.co.kr/media/channel/view.html?cms_code=CMS2832062046
ํ๊ตญ์ธ๋ ์ ์ฐฌ์ ๊ต์๋์ Data Structures with Python ๊ฐ์
'Computer > Data Structure' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํด์ ํ ์ด๋ธ(Hash Table)์ ๋์๊ด. (5) | 2024.03.08 |
---|---|
[Swift] ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Linked List)๋ ์งํ์ฒ . (feat. ์ค๊ตญ์ด์ฐจ) (5) | 2024.03.01 |
[Swift] ํ(Queue)๋ ์ ์ฐฉ์. (1) | 2024.01.25 |
[Swift] ์คํ(Stack)์ ํ๋ง๊ธ์ค. (1) | 2024.01.23 |
- Swift
- ๋จ์ผ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- 10808
- remainder
- ์ ๋ง๋๊ธฐ
- 2023๋ ํ๊ณ
- Anyobject
- ๊ท๋๋ผ๋ฏธ ์์ด
- ์์ด ๋ด์ค
- pageViewController
- 5397
- ์คํ
- ๊ท๋๋ผ๋ฏธ ์์ด
- ๊ท ํ์กํ ์ธ์
- ์๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- ๊ณต๊ฐ ๋ณต์ก๋
- ๊ดํธ์ ๊ฐ
- C++
- tipkit
- ์๋ฃ ๊ตฌ์กฐ
- root view controller
- 2024๋ ๋ชฉํ
- BOJ
- containerView
- 4949
- ํ
- Container View Controller
- ์์ด ๊ณต๋ถ
- gitkraken
- ๋ฒ์ฉ๊ณ ์ ์๋ณ
- Total
- Today
- Yesterday