- Today
- Total
๋ชฉ๋ก์ ์ฒด ๊ธ (350)
DATA101

๋ณธ ํฌ์คํ ์์๋ ์์ฐจ ํ์(Sequential Search)์ ๋ํด ์์๋ด ๋๋ค. ๐ ๋ชฉ์ฐจ 1. ์์ฐจ ํ์(์ด๋? 2. ๋์ ๊ณผ์ 3. ๊ตฌํ(Python) 4. ์๊ฐ ๋ณต์ก๋ 1. ์์ฐจ ํ์์ด๋? ์์ฐจ ํ์(Sequential Search)์ ๋ง ๊ทธ๋๋ก ๋ฆฌ์คํธ ๋ด ํน์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ธฐ ์ํด ์์์๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฐจ๋ก๋๋ก ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. 2. ๋์ ๊ณผ์ ์์ฐจ ํ์์ ๊ณผ์ ์ ์๋์ ๊ฐ์ต๋๋ค. ํ์ด์จ์ ๋ณต์กํด ๋ณด์ด์ง๋ง ๋งจ ์์์๋ถํฐ ์ฐจ๋ก๋๋ก ๋น๊ตํ๋ ๋จ์ํ ๋ฐฉ๋ฒ์ ๋๋ค. 1๏ธโฃ ๋งจ ์ ๋ฐ์ดํฐ์ ์ฐพ์ผ๋ ค๋ ๋ฐ์ดํฐ๊ฐ ๊ฐ์์ง ํ์ํฉ๋๋ค. 2๏ธโฃ ๋ฐ์ดํฐ๊ฐ ์๋ก ๊ฐ์ง ์๋ค๋ฉด ๋ค์ ๋ฐ์ดํฐ์ ์ฐพ์ผ๋ ค๋ ๋ฐ์ดํฐ๊ฐ ๊ฐ์์ง ํ์ํฉ๋๋ค. 3๏ธโฃ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ธฐ ์ ๊น์ง 2๏ธโฃ ๊ณผ์ ์ ๋ฐ๋ณตํฉ๋๋ค. ๋ฆฌ์คํธ ๋ด ๋ฐ์ดํฐ๊ฐ ์๋ฌด๋ฆฌ ๋ง์๋ ..

๋ณธ ํฌ์คํ ์์๋ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์ ๋ต์ ๊ณต์ ํฉ๋๋ค. ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ ์ ๋ต ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด์ ์์ด์ ํน๋ณํ ๋ฌธ์ ์์ ์๊ตฌ์ฌํญ์ด ์์ ๊ฒฝ์ฐ, ๋จ์ํ ์ ๋ ฌ์ด ํ์ํ ์ํฉ์์๋ ๊ธฐ๋ณธ ๋ด์ฅ ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค. ๋ค๋ง, ๋ฐ์ดํฐ์ ๋ฒ์๊ฐ ํ์ ๋์ด ์๊ณ ๋์ฑ ๋น ๋ฅด๊ฒ ๋์ํ๋๋ก ๋ฌธ์ ๋ฅผ ํ์ด์ผ ํ๋ค๋ฉด ๊ณ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ํ์ฉํ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด์ฒ๋ผ ์๋์ ์ฃผ์ด์ง ์ํฉ์ ๋ง๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์ ๋ต์ ์ ๋ฆฌํด ๋ณด์์ต๋๋ค. (1) ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ฉ ๋ฌธ์ ๋จ์ํ ๋ด์ฅ ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์๊ณ ์๊ณ ์ฌ์ฉํ ์ค ์๋์ง ๋ฌป๊ธฐ ์ํ ๋ฌธ์ ์ ํ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ด์ฅ ์ ๋ ฌ ํจ์ ์ฌ์ฉ๋ฐฉ๋ฒ์ ๋ํด ๊ธฐ๋ณธ์ ์ธ ๋ถ๋ถ๋ค์ ๋ํด ์์งํ๊ณ ์์ผ๋ฉด ์ด๋ ต์ง ์๊ฒ ๋ฌธ์ ๋ฅผ ํ ์ ์์ต๋๋ค. (..

์ค๋์ ํ์ด์ฌ ๋ด์ฅ ํจ์์ธ sorted()์ sort()๋ฅผ ํ์ฉํ ๋ฐ์ดํฐ ์ ๋ ฌ ๋ฐฉ๋ฒ์ ๋ํด ๊ณต์ ํด ๋๋ฆฝ๋๋ค. ๊ทธ๋ผ ๋ฐ๋ก ์์ํ์ฃ ! ๋ชฉ์ฐจ 1. ๊ธฐ๋ณธ ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ 2. sorted ํจ์ 3. sort ํจ์ 4. key ๋งค๊ฐ๋ณ์๋ฅผ ํ์ฉํ ์ ๋ ฌ ๊ธฐ์ค ์ค์ 5. ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ ์ ๋ต 1. ๊ธฐ๋ณธ ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ด์ฌ์๋ sorted ๋ฐ sort๋ผ๋ ์ ๋ ฌ ํจ์๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ด์ฅ๋์ด ์์ต๋๋ค. ์ด ํจ์๋ค์ ๋ฆฌ์คํธ, ๋์ ๋๋ฆฌ, ์งํฉ ๋ฑ์ ๋ฐ์ดํฐ ํ์ ์ ์ ๋ ฅ๊ฐ์ผ๋ก ๋ฐ๊ณ , ๋ฐ์ดํฐ ํ์ ์ ์๊ด์์ด ํญ์ ๋ฆฌ์คํธ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๊ฒ์ด ํน์ง์ ๋๋ค. ๋ํ, ์ด ํจ์๋ค์ ์ต์ ์ ๊ฒฝ์ฐ์๋ O(N*log N) ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๋ณด์ฅํ๋ค๋ ๊ฒ์ด ํน์ง์ ๋๋ค. ๊ทธ๋ผ sorted ํจ์์ sort ํจ์ ๊ฐ๊ฐ์..

๋ณธ ํฌ์คํ ์์๋ ๊ณ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ด ๋๋ค. ๐ ๋ชฉ์ฐจ 1. ๊ณ์ ์ ๋ ฌ์ด๋? 2. ๊ณ์ ์ ๋ ฌ์ ๋์ ๊ณผ์ 3. ๊ณ์ ์ ๋ ฌ์ ๊ตฌํ(Python) 4. ๊ณ์ ์ ๋ ฌ์ ์๊ฐ ๋ณต์ก๋ 1. ๊ณ์ ์ ๋ ฌ์ด๋? ๊ณ์ ์ ๋ ฌ์ ๋ฐ์ดํฐ ๊ฐ์๊ฐ ๋ง๋๋ผ๋ ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋์ํ๋ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋๋ก์ ๋ฆฌ์คํธ๊ฐ ๋ชจ๋ ์ ์ ํํ๋ก ํํ๋์ด ์๊ณ ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ์ ๊ฐ์ฅ ํฐ ๋ฐ์ดํฐ์ ์ฐจ์ด๊ฐ 1๋ฐฑ๋ง(1,000,000) ์ดํ์ผ ๋ ํจ๊ณผ์ ์ผ๋ก ๋์ํฉ๋๋ค. ์ด์ฒ๋ผ ํน์ ์กฐ๊ฑด์ด ๋ถํฉํ ๋๋ง ๋์ํ๋ ์ด์ ๋ ๊ณ์ ์ ๋ ฌ์ ํ์ฉํ ๋๋ ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ๋ถํฐ ๊ฐ์ฅ ํฐ ๋ฐ์ดํฐ๊น์ง ๋ชจ๋ ๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์ ์๋ ํฌ๊ธฐ์ ๋ฆฌ์คํธ๋ฅผ ์ ์ธํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ์ ๊ฐ์ฅ ํฐ ๋ฐ์ดํฐ์ ์ฐจ์ด๊ฐ 1,000,000์ด๋ผ๋ฉด ์ด ..

๋ณธ ํฌ์คํ ์์๋ ํต ์ ๋ ฌ(Quick sort) ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์๋ด ๋๋ค. ๐ ๋ชฉ์ฐจ 1. ํต ์ ๋ ฌ์ด๋? 2. ํต ์ ๋ ฌ์ ๋์ ๊ณผ์ 3. ํต ์ ๋ ฌ ๊ตฌํ(Python) 4. ํต ์ ๋ ฌ์ ์๊ฐ ๋ณต์ก๋ 1. ํต ์ ๋ ฌ์ด๋? ํต ์ ๋ ฌ์ ํผ๋ฒ(pivot)์ด๋ผ๋ ๊ธฐ์ค ๋ฐ์ดํฐ๋ฅผ ์ค์ ํ๊ณ ๊ทธ ๊ธฐ์ค ๋ฐ์ดํฐ๋ณด๋ค ํฐ ๋ฐ์ดํฐ์ ์์ ๋ฐ์ดํฐ์ ์์น๋ฅผ ๋ณ๊ฒฝํ๋ ์ ๋ ฌ ๋ฐฉ์์ ๋๋ค. ํต ์ ๋ ฌ์ ๋ฐ์ดํฐ ๊ฐ์ ๋น๊ต๋ง์ผ๋ก ์ ๋ ฌ์ ์ํํ๋ ๋น๊ต ์ ๋ ฌ ์ค ํ๋๋ก์ ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด ์ ๋ ฌ์ด ๋น ๋ฅด๋ค๋ ํน์ง์ด ์์ต๋๋ค. ํต ์ ๋ ฌ์ ๋ฐฉ์์ ํผ๋ฒ์ ์ค์ ํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ถํ ํ๋ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ์ง๋ก ๊ตฌ๋ถํ ์ ์์ง๋ง, ์ด๋ฒ ํฌ์คํ ์์๋ ๊ฐ์ฅ ๋ํ์ ์ธ ๋ถํ ๋ฐฉ์์ธ ํธ์ด ๋ถํ (Hoare Partition)์ ๊ธฐ์ค์ผ๋ก ์ค๋ช ๋๋ฆฌ๋๋ก ํ๊ฒ ์ต๋๋ค. 2. ํต ์ ๋ ฌ์..

๋ณธ ํฌ์คํ ์์๋ ์ฝ์ ์ ๋ ฌ(Insertion sort) ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ด ๋๋ค. ๐ ๋ชฉ์ฐจ 1. ์ฝ์ ์ ๋ ฌ์ด๋? 2. ์ฝ์ ์ ๋ ฌ์ ๋์ ๊ณผ์ 3. ์ฝ์ ์ ๋ ฌ ๊ตฌํ(Python) 4. ์ฝ์ ์ ๋ ฌ์ ์๊ฐ ๋ณต์ก๋ 1. ์ฝ์ ์ ๋ ฌ์ด๋? ์ฝ์ ์ ๋ ฌ์ ์ ๋ ฌ์ด ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ณ ์ ์ ํ ์์น์ ์ฝ์ ํ๋ฉฐ ์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์ฝ์ ์ ๋ ฌ์ ํ์ํ ๋๋ง ๋ฐ์ดํฐ๋ฅผ ๋น๊ตํ๊ณ ์ฝ์ ํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๊ฐ ์ด๋ ์ ๋ ์ ๋ ฌ๋์ด ์์ ๋ ๋์ฑ ํจ์จ์ ์ผ๋ก ๋์ํฉ๋๋ค. ์ด๋ฌํ ํน์ง ๋๋ถ์ ์ ๋ ฌ ์ํ์ ์๊ด์์ด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ผ์ผ์ด ๋น๊ตํ๋ฉฐ ์ ๋ ฌํ๋ ๋ฐฉ์์ธ ์ ํ ์ ๋ ฌ๋ณด๋ค ์ผ๋ฐ์ ์ผ๋ก ํจ์จ์ ์ ๋๋ค. [์๊ณ ๋ฆฌ์ฆ] ์ ํ ์ ๋ ฌ์ ๋ํด ์์๋ณด์! (+Python ๊ตฌํ) ์ค๋์ ์ ํ ์ ๋ ฌ(selection sort) ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ณด๋๋ก ํ..

๋ณธ ํฌ์คํ ์์๋ ์ ํ ์ ๋ ฌ(selection sort) ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ด ๋๋ค. ๐ ๋ชฉ์ฐจ 1. ์ ํ ์ ๋ ฌ์ด๋? 2. ์ ํ ์ ๋ ฌ์ ๋์ ๊ณผ์ 3. ์ ํ ์ ๋ ฌ ๊ตฌํ(Python) 4. ์ ํ ์ ๋ ฌ์ ์๊ฐ ๋ณต์ก๋ 1. ์ ํ ์ ๋ ฌ์ด๋? ์ ํ ์ ๋ ฌ์ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ๋ฌด์์๋ก ์์ ๋ ์ ์ฒด ๋ฐ์ดํฐ์์ ๋งค๋ฒ ๊ฐ์ฅ ์์(๋๋ ๊ฐ์ฅ ํฐ) ๋ฐ์ดํฐ๋ฅผ ์ ํํ์ฌ ๋ฐ์ดํฐ ๊ฐ์ ์์น๋ฅผ ๋ณ๊ฒฝํ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ค๋ฆ์ฐจ์(๋๋ ๋ด๋ฆผ์ฐจ์)์ผ๋ก ์ ๋ ฌํ ๋ ์ฌ์ฉํฉ๋๋ค. ์ ํ ์ ๋ ฌ์ ์ข ๋ฅ๋ 2๊ฐ์ง๋ก ๋๋ ์ ์์ต๋๋ค. ์ต์ ์ ํ ์ ๋ ฌ(Min-selection sort): ๋งค๋ฒ ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ณ ๋ฐ์ดํฐ ๊ฐ์ ๋ฐฐ์น๋ฅผ ๋ณ๊ฒฝํ๋ฉฐ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ ์ต๋ ์ ํ ์ ๋ ฌ(Max-selection sort): ๋งค๋ฒ ๊ฐ์ฅ ํฐ ๋ฐ์ดํฐ๋ฅผ ..

๋ณธ ํฌ์คํ ์์๋ ๋๋น ์ฐ์ ํ์์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ BFS(Breadth-First Search)์ ๋ํด ์์๋ด ๋๋ค. ๐ ๋ชฉ์ฐจ 1. BFS ์๊ณ ๋ฆฌ์ฆ์ด๋? 2. BFS ์๊ณ ๋ฆฌ์ฆ ๋์ ๊ณผ์ 3. BFS ํ์ด์ฌ ๊ตฌํ 3.1. ์์ค์ฝ๋ ์ค๋ช 3.2. ์ ์ฒด ์์ค์ฝ๋ 1. BFS ์๊ณ ๋ฆฌ์ฆ์ด๋? BFS(Breadth-First Search)๋ ๋๋น ์ฐ์ ํ์์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ ๊ทธ๋ํ์์ ์์ ๋ ธ๋์ ์ธ์ ํ ๋ ธ๋๋ถํฐ ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. BFS ์๊ณ ๋ฆฌ์ฆ์ ์ธ์ ์ฌ์ฉํ๋ฉด ์ข์๊น์? BFS ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ๋ก ๊ทธ๋ํ์์ ๋ชจ๋ ๊ฐ์ ์ ๋น์ฉ์ด ๋์ผํ ์กฐ๊ฑด์์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ "๋ฏธ๋ก๋ฅผ ๋น ์ ธ๋๊ฐ๋ ์ต๋จ ๊ฑฐ๋ฆฌ(๊ฒฝ๋ก)"๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ๋ฑ์์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค...