๐ค[์๊ณ ๋ฆฌ์ฆ] SW Expert ํ์ด์ฌ SW๋ฌธ์ ํด๊ฒฐ ๊ธฐ๋ณธ - LIST1 ๊ฐ์
์๊ณ ๋ฆฌ์ฆ
์๊ณ ๋ฆฌ์ฆ
: ์ ํํ ๋จ๊ณ๋ฅผ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ ์ฐจ๋ ๋ฐฉ๋ฒ
์๊ณ ๋ฆฌ์ฆ ํํ๋ฒ
- ์๋์ฝ๋
- ์์๋
์๊ณ ๋ฆฌ์ฆ ์ฑ๋ฅ ๋ถ์
- ์ ํ์ฑ
์ผ๋ง๋ ์ ํํ๊ฒ ๋์ํ๋๊ฐ - ์์
๋
์ผ๋ง๋ ์ ์ ์ฐ์ฐ์ผ๋ก ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ด๋ด๋๊ฐ - ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋
์ผ๋ง๋ ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๊ฐ - ๋จ์์ฑ
์ผ๋ง๋ ๋จ์ํ๊ฐ - ์ต์ ์ฑ
๋์ด์ ๊ฐ์ ํ ์ฌ์ง ์์ด ์ต์ ํ๋์๋๊ฐ
๊ฐ ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ๋ถ์ํ ํ์๊ฐ ์๋ค.
-> ์๊ณ ๋ฆฌ์ฆ ์ฑ๋ฅ ๋ถ์์ ๊ธฐ์ค์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์ ์์
๋์ ๋น๊ต
ex) 1~100๊น์ง ํฉ ๊ตฌํ๋ ๋ฌธ์
1. (1+2+....+100) = 99๋ฒ ์ฐ์ฐ
2. 100*(1+100)/2 = 3๋ฒ ์ฐ์ฐ
๋ํ๋ ค๋ ๋ฒ์๊ฐ ํด์๋ก ์ฐ์ฐ ํ์์ ์ฐจ์ด๊ฐ ์ปค์ง
์๊ณ ๋ฆฌ์ฆ์ ์์ ๋ ๋ถ์ ๋ฐฉ๋ฒ
- ์ค์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ธก์
- ์คํ๋๋ ๋ช ๋ น๋ฌธ์ ๊ฐ์๋ฅผ ๊ณ์ฐ
1๋ฒ์ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ผ๋ฏ๋ก 2๋ฒ์ ๊ธฐ์ค์ผ๋ก ํ์ฌ ์๊ฐ๋ณต์ก๋๋ฅผ ์ธก์ ํ๋ ๋ฐฉ๋ฒ์ด ์์ฃผ ์ฌ์ฉ๋๋ค.
์๊ณ ๋ฆฌ์ฆ 1 ์๊ฐ๋ณต์ก๋ = 2n+1
์๊ณ ๋ฆฌ์ฆ 2 ์๊ฐ๋ณต์ก๋ = 3
์๊ฐ๋ณต์ก๋ ํํ ๋ฐฉ๋ฒ - ๋น -์ค(O) ํ๊ธฐ๋ฒ
: ์๊ฐ๋ณต์ก๋ ํจ์ ์ค์์ ๊ฐ์ฅ ํฐ ์ํฅ๋ ฅ์ ์ฃผ๋ n์ ๋ํ ํญ๋ง์ ํ์
๊ณ์๋ ์๋ตํ์ฌ ํ์
O(2n+1)
= O(2n) : ์ต๊ณ ์ฐจํญ 2n๋ง ์ ํ
= O(n) : ๊ณ์ ์ ๊ฑฐ
O(2n^2 +10n+100) = O(n^2)
O(4)=O(1)
์์ ์์ ์ ๊ณฑ์๋ก ํํ๋๋ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ฒฝ์ฐ ์ฐ์ฐ์๊ฐ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ ์ ์ํด์ ์ฌ์ฉํด์ผ ํ๋ค.
๋ฐ๋ผ์ ์๊ฐ๋ณต์ก๋๊ฐ N^2์ธ ์๊ณ ๋ฆฌ์ฆ ๋์ logN์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํด์ผ ํ๋ค.
์๊ฐ๋ณต์ก๋๊ฐ ํ์ํ ์ด์ !
List
python ์๊ฐ
- ๋ฏธ๋ฆฌ ๊ธฐ๊ณ์ด๋ก ์ปดํ์ผํด๋๋ ๊ฒ์ด ์๋๋ผ ์คํ์๋ง๋ค ์์ค๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํด์ ์คํํ๋ ์ธํฐํ๋ฆฌํฐ ๋ฐฉ์์ด๋ฏ๋ก ๋๋ฆฌ์ง๋ง ํ๋ซํผ์ ์๊ด์์ด ์คํ์ด ๊ฐ๋ฅํ๋ค.
- ๊ฐ์ฒด์งํฅ ์ธ์ด
- IoT๋ถ์ผ์ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด, ๋น ๋ฐ์ดํฐ์ ์๋ฃ๋ถ์๋ฑ์์ ํ์ด์ฌ ๊ด์ฌ ๋์์ง
์์ ์๋ ํ๋์จ์ด ์ฑ๋ฅ์ด ์ข์ง ๋ชปํด์ ํ๋ก๊ทธ๋จ์ ์คํ ์๋๊ฐ ํฌ๊ฒ ์ฐจ์ด๊ฐ ๋ฌ์. ๋ฐ๋ผ์ ์คํ์๋๊ฐ ๋๋ฆฐ ํ์ด์ฌ ์ฃผ๋ชฉ ๋ชป๋ฐ๋ค๊ฐ
ํ๋์จ์ด ์ฑ๋ฅ ๊ฐ์ ์ผ๋ก ์คํ์๋์ ์ฐจ์ด๊ฐ ํฌ์ง ์๊ฒ๋๋ฉด์ ๊ฐ๋ฐ์๊ฐ๋จ์ถ์ ๊ด์ฌ์ด ์ง์ค๋๋ฉด์ ํ์ด์ฌ ์ฃผ๋ชฉ๋ฐ๊ธฐ ์์
๋ณ์
- ํ์ด์ฌ์์ ๋ชจ๋ ์๋ฃ๋ ๊ฐ์ฒด๋ก ์ฐธ์กฐํ ๋ณ์๋ก ์ฒ๋ฆฌ.
Java๋ C์์ ์ฌ์ฉ๋๋ ๊ธฐ๋ณธํ ํ์ ๋ณ์๋ ํ์ด์ฌ์๋ ๊ฐ์ฒด - ๋ณ์์ ์ ์ธ์ ๋ฐ๋ก ์์
๋ณ์๊ฐ์ ์ด๊ธฐํ ์ ๋ณ์๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์์ฑ
ํ๋์ ๋ณ์์ ๋ค๋ฅธ ํ์ ์ ๊ฐ์ ๋ณ์์ ์ ์ฅํ ์ ์์.
a=3
a="hello"
๋ชจ๋ ๋ณ์๋ ์ฐธ์กฐํ ํ์
์ ๋ณ์๋ก ์ค์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ์ ์ฅํ๋ค.
๋ณ์์ ํ์
์ด ๊ณ ์ ๋์ด์๋๊ฒ์ด ์๋๊ณ ์ ์ฅ๋์ด ์๋ ๋ฐ์ดํฐ ํ์
์ ๋ฐ๋ผ ๋ณ์ ํ์
์ด ๊ฒฐ์ ๋จ.
์๋ฃํ
ํ์ด์ฌ์ ๋ณ์์๋ ํจ์, ํด๋์ค ๋ฑ ๋ชจ๋ ๊ฒ์ ์ ์ฅํ ์ ์๋ค.
- int
์ฌ์ฉํ ์ ์๋ ์ ์ํฌ๊ธฐ์ ์ ํ์ด ์๋ค. ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ฉ๊ฐ๋ฅํ ๋ฌดํ๋์ ์ ์๊น์ง๋ ์ฌ์ฉํ ์ ์๋ค.
์ฌ๋ฌ๊ฐ์ง ์๋ฃ๊ตฌ์กฐ ์ง์
- ๋ค์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ์ปจํ
์ด๋
- tuple
์์๊ฐ ์๋ ๋ฐ์ดํฐ์ ๋ฌถ์. ์์๊ฐ ์์ผ๋ฏ๋ก ์ค๋ณต ๋ฐ์ดํฐ ํ์ฉ
๋ฐ์ดํฐ ์ถ๊ฐ, ์์ , ์ญ์ ํ ์ ์์.
ํ์ด์ฌ์์ ๋ฐ์ดํฐ๋ฅผ ,๋ก ๋์ดํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ํํ๋ก ์ธ์. ์ด ๊ณผ์ ์ packing์ด๋ผ๊ณ ํ๋ค.
ํํ๋ก ๋ฌถ์ฌ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฑ๊ฐ๋ก ๊บผ๋ด๋ ์์ ์ unpacking - list
์์๊ฐ ์๋ ๋ฐ์ดํฐ์ ๋ฌถ์. ์ค๋ณต ๋ฐ์ดํฐ ํ์ฉ
๋ฐ์ดํฐ ์ถ๊ฐ, ์์ , ์ญ์ ๊ฐ๋ฅ
ํํ๊ณผ ๋ฆฌ์คํธ๋ ํก์ฌํ์ง๋ง ์ฐจ์ด๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฌ๋ถ
๋ฆฌ์คํธ๋ณด๋ค ํํ์ด ์ฒ๋ฆฌ์๋๊ฐ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋ณ๊ฒฝํ ํ์๊ฐ ์๋ค๋ฉด ํํ ์ฌ์ฉ - dictionary
ํค์ ๊ฐ์ ์์ผ๋ก ํ๋์ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑ.
์์๊ฐ ์๊ณ ํค๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ๋๋ฌธ์ ํค์ ์ค๋ณต์ ํ์ฉ์๋จ, ๊ฐ์ ์ค๋ณต์ ์ค๋ณต ํ์ฉ
๋ฐ์ดํฐ ๋ณ๊ฒฝ ๊ฐ๋ฅ. - set
์์ ์์. ๋ฐ์ดํฐ ์ค๋ณต ํ์ฉํ์ง ์์
์์๊ฐ ์์ผ๋ฏ๋ก ์ธ๋ฑ์ฑ, ์ฌ๋ผ์ด์ฑ์ ํ ์ ์์ง๋ง ๋ฐ์ดํฐ ์ถ๊ฐ, ์์ , ์ญ์ ๊ฐ๋ฅ.
dictionary์ ํค์ set์ ์ค๋ณต์ ํ์ฉํ์ง ์๋๋ค.
๋ด๋ถ์ ์ผ๋ก ์ค๋ณต์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์์ ํจ์ฑ ๊ธฐ๋ฒ์ด ์ฌ์ฉ๋๋๋ฐ, ํค์ set์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ์ ์๋ ๋ถ๋ณ ๊ฐ์ฒด๋ง ์ฌ์ฉ๋ ์ ์๋ค.
List ์๊ฐ
- ๋ฐฐ์ด(List)
: ๊ฐ์ ํ์ ๋ณ์๋ค์ ํ๋์ ์ด๋ฆ์ผ๋ก ์ด๊ฑฐํ์ฌ ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ- ํ์ด์ฌ์ list๋ C๋ ์๋ฐ์ ๋ฐฐ์ด๊ณผ ๋น์ทํ ์๋ฃ๊ตฌ์กฐ
- ํ๋์ ๋ณ์๋ฅผ ํตํด์ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค.
List ์ฌ์ฉ๋ฐฉ๋ฒ
ํ์ด์ฌ์ ๋ณ์
- ๋ณ๋์ ์ ์ธ๋ฐฉ๋ฒ์ด ์์ผ๋ฉฐ ๋ณ์์ ์ฒ์ ๊ฐ์ ํ ๋นํ ๋ ์์ฑ
- ๊ฐ์ ์ด๊ธฐํํ๊ธฐ ์ ์, ๋ณ์๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋์ด์ผ ํ ๊ฒฝ์ฐ๋ฅผ ๋๋นํด ๊ณต๋ฐฑ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ ์ ๊ณต
# ๋ฐฉ๋ฒ 1
num=[]
#๋ฐฉ๋ฒ 2
arr=list()
๋ฐฐ์ด๊ณผ ๋ฆฌ์คํธ์ ์ฐจ์ด์
๋ฐฐ์ด๋ณด๋ค ๋ฆฌ์คํธ๊ฐ ์ฌ์ฉํ๊ธฐ ํธ๋ฆฌ
2์ฐจ์ ๋ฆฌ์คํธ: ๋ฆฌ์คํธ ์์ ์์๋ก ๋ฆฌ์คํธ๊ฐ ๋ค์ด๊ฐ
arr=[[1,2],[3,4],[5,6]]
๋ฆฌ์คํธ๋ ์์๋ฅผ ๊ฐ์ง ์งํฉ์ผ๋ก ์ํ์ค(Sequence)์๋ฃํ ์ค ํ๋.
์ํ์ค ์๋ฃํ
- ์์๊ฐ ์กด์ฌํ๋ฏ๋ก, ์ธ๋ฑ์ฑ๊ณผ ์ฌ๋ผ์ด์ฑ์ ์ฐ์ฐ ๋ชจ๋ ์ ์ฉ๊ฐ๋ฅ
- ์ธ๋ฑ์ฑ
: ์ํ์ค ์๋ฃํ์์ ํ๋์ ์์๋ฅผ ์ธ๋ฑ์ค ์ฐ์ฐ์๋ฅผ ํตํ์ฌ ์ฐธ์กฐํ๋๊ฒ
๋ฆฌ์คํธ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ์ธ๋ฑ์ค ์ฌ์ฉ์ ์ธ๋ฑ์ค ์๋ฌ๊ฐ ๋ฐ์arr=[4,5,6,7,8,9] arr[0] #4 arr[-1] #9
- ์ฌ๋ผ์ด์ฑ
: ์ํ์ค ์๋ฃํ์ ์ํ๋ ๋ฒ์๋ฅผ ์ ํํ๋ ์ฐ์ฐ
arr=[4,5,6,7,8,9] arr[1:3] #[5,6] arr[:3] #[4,5,6] arr[1:] #[5,6,7,8,9] arr[:] #[4,5,6,7,8,9]
- ์ธ๋ฑ์ฑ
- ์ํ์ค ์๋ฃํ์ ์ฌ์ฉํ ์ ์๋ ํจ์์ ์ฐ์ฐ ์ฌ์ฉ๊ฐ๋ฅ
๋ฆฌ์คํธ ํจ์ถ(List Comprehension)
์ํ์์ ์งํฉ์ ์ ์ํ๋ ํํ์๊ณผ ์ ์ฌ
ex) 10๋ณด๋ค ์์ ์ง์๋ค์ ์งํฉ์ ์์๋ก ํ๋ ๋ฆฌ์คํธ
mylist=[2,3,4,5,6]
newlist=[i for i in mylist if i%2==0]
๋ฆฌ์คํธ ํจ์ถ์์ if๋ฌธ์ ์๋ตํ ์ ์๊ณ for๋ฌธ๊ณผ if๋ฌธ์์ ์ถ๊ฐ์ ์ผ๋ก ๋ ์์ฑํ ์๋ ์๋ค.
Exhaustive Search
์์ ๊ฒ์ ์๊ฐ
์์ ๊ฒ์(Exhaustive Search)
: ๋ฌธ์ ์ ํด๋ฒ์ผ๋ก ์๊ฐํ ์ ์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋์ดํด๋ณด๊ณ ํ์ธํ๋ ๊ธฐ๋ฒ
- Brute-force ํน์ Generate-and-Test ๊ธฐ๋ฒ์ด๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
- ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ํ ์คํธ ํ ํ, ์ต์ข ํด๋ฒ์ ๋์ถํจ
- ์ผ๋ฐ์ ์ผ๋ก ๊ฒฝ์ฐ์ ์๊ฐ ์๋์ ์ผ๋ก ์์ ๋ ์ ์ฉํจ
- ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์์ฑํ๊ณ ํ ์คํธํ๊ธฐ ๋๋ฌธ์ ์ํ์๋๋ ๋๋ฆฌ์ง๋ง, ํด๋ต์ ์ฐพ์๋ด์ง ๋ชปํ ํ๋ฅ ์ด ์ ์
- ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ํ๋, ์ฐ์ ์์ ๊ฒ์์ผ๋ก ์ ๊ทผํ์ฌ ํด๋ต์ ๋์ถํ ํ, ์ฑ๋ฅ ๊ฐ์ ์ ์ํด ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๊ณ ํด๋ต์ ํ์ธํ๋๊ฒ์ด ๋ฐ๋์งํ๋ค.
์์ด
์์ด(Permutation)
: ์๋ก ๋ค๋ฅธ ๊ฒ๋ค ์ค ๋ช๊ฐ๋ฅผ ๋ฝ์์ ํ์ค๋ก ๋์ดํ๋๊ฒ
- ์๋ก๋ค๋ฅธ n๊ฐ ์ค r๊ฐ๋ฅผ ํํ๋ ์์ด :
nPr
nPr= n*(n-1)*(n-2)*....*(n-r+1)
nPn=n!
n!=n*(n-1)*(n-2)*....*2*1
Greedy Algorithm
ํ์ ์๊ณ ๋ฆฌ์ฆ์ด๋?
ํ์ ์๊ณ ๋ฆฌ์ฆ(Greedy Algorithm)
: ์ต์ ํด๋ฅผ ๊ตฌํ๋๋ฐ ์ฌ์ฉ๋๋ ๊ทผ์์์ ์ธ ๋ฐฉ๋ฒ
- ์ฌ๋ฌ ๊ฒฝ์ฐ ์ค ํ๋๋ฅผ ๊ฒฐ์ ํด์ผ ํ ๋๋ง๋ค ๊ทธ ์๊ฐ์ ์ต์ ์ด๋ผ๊ณ ์๊ฐ๋๋ ๊ฒ์ ์ ํํด๋๊ฐ๋ ๋ฐฉ์์ผ๋ก ์งํํ์ฌ ์ต์ข ์ ์ธ ํด๋ต์ ๋๋ฌ
- ๊ฐ ์ ํ์ ์์ ์์ ์ด๋ฃจ์ด์ง๋ ๊ฒฐ์ ์ ์ง์ญ์ ์ผ๋ก๋ ์ต์ ์ด์ง๋ง, ๊ทธ๊ฒ๋ค์ ๊ณ์ ์์งํ์ฌ ์ต์ข ์ ์ธ ํด๋ต์ ๋ง๋ค์๋ค๊ณ ํ์ฌ, ๊ทธ๊ฒ์ด ์ต์ ์ด๋ผ๋ ๋ณด์ฅ์ ์์
- ์ผ๋ฐ์ ์ผ๋ก, ๋จธ๋ฆฌ์์ ๋ ์ค๋ฅด๋ ์๊ฐ์ ๊ฒ์ฆ์์ด ๋ฐ๋ก ๊ตฌํํ๋ฉด Greedy ์ ๊ทผ์ด ๋จ
ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ํ๊ณผ์
- ํด ์ ํ
ํ์ฌ ์ํ์์ ๋ถ๋ถ ๋ฌธ์ ์ ์ต์ ํด๋ฅผ ๊ตฌํ ๋ค, ์ด๋ฅผ ๋ถ๋ถ ํด ์งํฉ(Solution Set)์ ์ถ๊ฐํจ - ์คํ๊ฐ๋ฅ์ฑ ๊ฒ์ฌ
์๋ก์ด ๋ถ๋ถ ํด ์งํฉ์ด ์คํ๊ฐ๋ฅํ์ง๋ฅผ ํ์ธ.
๊ณง, ๋ฌธ์ ์ ์ ์ฝ์กฐ๊ฑด์ ์๋ฐํ์ง ์๋์ง๋ฅผ ๊ฒ์ฌํจ - ํด ๊ฒ์ฌ
์๋ก์ด ๋ถ๋ถํด ์งํฉ์ด ๋ฌธ์ ์ ํด๊ฐ ๋๋์ง๋ฅผ ํ์ธ.
์์ง ์ ์ฒด ๋ฌธ์ ์ ํด๊ฐ ์์ฑ๋์ง ์์๋ค๋ฉด, ํด ์ ํ๋ถํฐ ๋ค์ ์์ํจ.
ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ธ ์ ๊ทผ์ ํด๋ต์ ์ฐพ์๋ด์ง ๋ชปํ๋ ๊ฒฝ์ฐ๋ ์๋ค.
Sort
์ ๋ ฌ ๊ฐ์
์ ๋ ฌ(Sort)์ด๋
: 2๊ฐ ์ด์์ ์๋ฃ๋ฅผ ํน์ ๊ธฐ์ค์ ์ํด ์์๊ฐ๋ถํฐ ํฐ ๊ฐ(์ค๋ฆ์ฐจ์ : ascending), ํน์ ๊ทธ ๋ฐ๋์ ์์๋๋ก(๋ด๋ฆผ์ฐจ์ : descending) ์ฌ๋ฐฐ์ดํ๋๊ฒ
ํค : ์๋ฃ๋ฅผ ์ ๋ ฌํ๋ ๊ธฐ์ค์ด ๋๋ ํน์ ๊ฐ
ex) ์๋ฅ๋ฅผ ๋ฒํธ๋๋ก ์ ๋ ฌํ๋ ๊ฒฝ์ฐ : ์๋ฅ๋ฒํธ๊ฐ ํค
๋ํ์ ์ธ ์ ๋ ฌ ๋ฐฉ์์ ์ข ๋ฅ
- ๋ฒ๋ธ ์ ๋ ฌ (Bubble sort)
- ์นด์ดํ ์ ๋ ฌ (Counting sort)
- ์ ํ ์ ๋ ฌ (Selection sort)
- ํต ์ ๋ ฌ (Quick sort)
- ์ฝ์ ์ ๋ ฌ (Insertion sort)
- ๋ณํฉ ์ ๋ ฌ (Merge sort)
๋ฒ๋ธ ์ ๋ ฌ
Bubble Sort
: ์ธ์ ํ ๋ ๊ฐ์ ์์๋ฅผ ๋น๊ตํ๋ฉฐ ์๋ฆฌ๋ฅผ ๊ณ์ ๊ตํํ๋ ๋ฐฉ์
์ ๋ ฌ๊ณผ์
- ์ฒซ๋ฒ์งธ ์์๋ถํฐ ์ธ์ ํ ์์๋ผ๋ฆฌ ๊ณ์ ์๋ฆฌ๋ฅผ ๊ตํํ๋ฉด์ ๋งจ ๋ง์ง๋ง ์๋ฆฌ๊น์ง ์ด๋
- ํ ๋จ๊ณ๊ฐ ๋๋๋ฉด ๊ฐ์ฅ ํฐ ์์ ๋๋ ๊ฐ์ฅ ์์ ์์๊ฐ ๋ง์ง๋ง ์๋ฆฌ๋ก ์ ๋ ฌ๋จ
- ๊ตํํ๋ฉฐ ์๋ฆฌ๋ฅผ ์ด๋ํ๋ ๋ชจ์ต์ด ๋ฌผ ์์ ์ฌ๋ผ์ค๋ ๊ฑฐํ๋ชจ์ ๊ฐ์์ ๋ฒ๋ธ์ ๋ ฌ
๋ฒ๋ธ์ ๋ ฌ์ ์๊ฐ๋ณต์ก๋ = O(n^2)
์์ชฝ ๋ฐ๋ณต๋ฌธ์ ๋ฒ์๊ฐ ๋ฐ๊นฅ์ชฝ ๋ฐ๋ณต๋ฌธ์ ๋ฒ์์ ์ํด ์ ์ด๋๋๊ฒ ์ ์
์นด์ดํ ์ ๋ ฌ
Counting Sort
: ํญ๋ชฉ๋ค์ ์์๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด ์งํฉ์ ๊ฐ ํญ๋ชฉ์ด ๋ช๊ฐ์ฉ ์๋์ง ์ธ๋ ์์ ์ ํ์ฌ, ์ ํ ์๊ฐ์ ์ ๋ ฌํ๋ ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ
์ ๋ ฌ๊ณผ์
- ์ ์๋, ์ ์๋ก ํํํ ์ ์๋ ์๋ฃ์ ๋ํด์๋ง ์ ์ฉ๊ฐ๋ฅ.
๊ฐ ํญ๋ชฉ์ ๋ฐ์ ํ์๋ฅผ ๊ธฐ๋กํ๊ธฐ ์ํด, ์ ์ ํญ๋ชฉ์ผ๋ก ์ธ๋ฑ์ค๋๋ ์นด์ดํธ๋ค์ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ. - ์นด์ดํธ๋ค์ ์ํ ์ถฉ๋ถํ ๊ณต๊ฐ์ ํ ๋นํ๋ ค๋ฉด ์งํฉ ๋ด์ ๊ฐ์ฅ ํฐ ์ ์๋ฅผ ์์์ผํจ.
์๊ฐ๋ณต์ก๋ = O(n+k)
n: ๋ฆฌ์คํธ์ ๊ฐ์, k: ์ ์์ ์ต๋๊ฐ
์ ๋ ฌ ๋น๊ต
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ค[์๊ณ ๋ฆฌ์ฆ] SW Expert ํ์ด์ฌ SW๋ฌธ์ ํด๊ฒฐ ๊ธฐ๋ณธ - LIST1 ๊ฐ์), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@wish/์๊ณ ๋ฆฌ์ฆ-SW-Expert-ํ์ด์ฌ-SW๋ฌธ์ ํด๊ฒฐ-๊ธฐ๋ณธ-LIST1์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค