๋ฌธ์ N๊ฐ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ด๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 ≤ N ≤ 1,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ์ซ์๊ฐ ์ฃผ์ด์ง๋ค. ์ด ์๋ ์ ๋๊ฐ์ด 1,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค. ์๋ ์ค๋ณต๋์ง ์๋๋ค. ์ถ๋ ฅ ์ฒซ์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๊ฒฐ๊ณผ๋ฅผ ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
์ ํ ์ ๋ ฌ, ๋ฒ๋ธ ์ ๋ ฌ, ์ฝ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋ชจ๋ ์๊ฐ ๋ณต์ก๋ O(N^2)์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๊ฐ ์ปค์ง๋ฉด ์ฌ์ฉํ๊ธฐ๊ฐ ์ด๋ ค์ด ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๊ทธ๋์ ๋์ฑ ๋น ๋ฅธ ์ ๋ ฌ์๊ณ ๋ฆฌ์ฆ์ด ์ฌ์ฉ๋ ํ์๊ฐ ์๋ค. ํต ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ์ ์ธ '๋ถํ ์ ๋ ฌ' ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ๊ท ์๋๊ฐ O(N * logN)์ด๋ค. ํต ์ ๋ ฌ์ ํ๋์ ํฐ ๋ฌธ์ ๋ฅผ ๋๊ฐ์ ์์ ๋ฌธ์ ๋ก ๋ถํ ํ๋ ์์ผ๋ก ๋น ๋ฅด๊ฒ ์ ๋ ฌํ๋ค. ํน์ ํ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ํฐ ์ซ์์ ์์ ์ซ์๋ฅผ ์๋ก ๊ตํํ ๋ค์ ๋ฐฐ์ด์ ๋ฐ์ผ๋ก ๋๋๋ค. ํน์ ํ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ํฐ ์ซ์์ ์์ ์ซ์๋ฅผ ๋๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํต์ ๋ ฌ์์๋ ๊ธฐ์ค๊ฐ์ด ์๋ค. ์ด๋ฅผ ํผ๋ฒ(Pivot)์ด๋ผ ํ๋ค. ๋ณดํต ๊ฐ์ฅ ์์ ์๋ ๊ฐ์ ํผ๋ฒ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ค. 3 7 8 1 5 9 6 10 2 4 -> 3 2 8 1 5 9 6 10 7 4 ..
๊ฐ ์ซ์๋ฅผ ์ ์ ํ ์์น์ ์ฝ์ ์ํจ๋ค. ๋ค๋ฅธ ์ ๋ ฌ ๋ฐ์๋ค์ ๋ฌด์กฐ๊ฑด ์์น๋ฅผ ๋ฐ๊พธ๋ ๋ฐฉ์์ด์๋ค๋ฉด ์ฝ์ ์ ๋ ฌ์ ํ์ํ ๋๋ง ์์น๋ฅผ ๋ฐ๊พธ๊ฒ ๋๋ค. ํ์ด์ฌ ์ฝ๋ # ์ฝ์ ์ ๋ ฌ (Insertion Sort) def insertion_sort(arr): for i in range(len(arr)-1): # ํ์ฌ ์ ๋ ฌํ ์์๋ฅผ ์ ํํด์ ์ ์ ํ ์์น์ ์ฝ์ ํ ์ ์๋๋ก j = i while arr[j] > arr[j + 1]: temp = arr[j] arr[j] = arr[j + 1] arr[j + 1] = temp j = j-1 return arr test = [1, 10, 5, 8, 7, 6, 4, 3, 2, 9] print("์ ๋ ฌ๋ ๋ฐ์ดํฐ : {}".format(insertion_sort(test))) ๋ฉ์ถ ํฌ์ธํธ๋ฅผ..
์์ ์๋ ๊ฐ๊ณผ ๋น๊ตํด์ ๋ ์์ ๊ฐ์ ์์ผ๋ก ๋ณด๋ธ๋ค. ๋ฒ๋ธ์ ๋ ฌ์ ๊ตฌํ์ ์ฝ์ง๋ง ํจ์จ์ฑ์ด ๊ฐ์ฅ ๋จ์ด์ง๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค ํ์ด์ฌ ์ฝ๋ # ๋ฒ๋ธ์ ๋ ฌ (Bubble Sort) def bubble_sort(arr): # for๋ฌธ ๋ฐฐ์ด์ ํฌ๊ธฐ๋งํผ ๋ฐ๋ณต 0๋ถํฐ len(arr)๋ฏธ๋ง๊น์ง for i in range(len(arr)): for j in range(0, len(arr)-1-i): if arr[j] > arr[j+1]: # ๋๊ฐ์ ๊ฐ ๋ฐ๊พธ๊ธฐ temp = arr[j] arr[j] = arr[j+1] arr[j+1] = temp return arr test = [1, 10, 5, 8, 7, 6, 4, 3, 2, 9] print("์ ํ ์ ๋ ฌ๋ ๋ฐ์ดํฐ : {}".format(bubble_sort(test))) ์๊ฐ๋ณต์ก๋..
๊ฐ์ฅ ์์ ๊ฒ์ ์ ํํด์ ์ ์ผ ์์ผ๋ก ๋ณด๋ธ๋ค. ๋ค์ 10๊ฐ์ ์๋ฅผ ์ค๋ฆ ์ฐจ์์ผ๋ก ์ ๋ ฌํด๋ณด์ 1 10 5 8 7 6 4 3 2 9 ๊ฐ์ฅ ์์ ์ซ์ 1์ ๊ฐ์ฅ ์์ชฝ์ ์์ผ๋ ์ ๋ ฌ์ด ๋ ๊ฒ 1 10 5 8 7 6 4 3 2 9 -> 1 2 5 8 7 6 4 3 10 9 1์ ์ ์ธํ๊ณ ๋๋จธ์ง ์ค์์ ๊ฐ์ฅ ์์ ์ซ์ 2๋ฅผ ๊ฐ์ฅ ์์ ์๋ 10๊ณผ ๋ฐ๊พผ๋ค. 1 2 5 8 7 6 4 3 10 9 -> 1 2 3 8 7 6 4 5 10 9 ๊ทธ ๋ค์ ๊ฐ์ฅ ์์ ์ซ์ 3์ ๊ฐ์ฅ ์์ ์ซ์ 5์ ๋ฐ๊พผ๋ค. ์ด๋ฐ ์์ผ๋ก ์ ๋ ฌ์ ํ๋ ๊ฒ์ด ์ ํ์ ๋ ฌ ํ์ด์ฌ ์ฝ๋ # ์ ํ์ ๋ ฌ (Selection Sort) # i์ j๋ ๋ฐฐ์ด์ ์์๋ค์ ๋ฐ๋ณต์ ์ผ๋ก ํ์ํ๊ธฐ ์ํด ์ฌ์ฉ # min ์ต์๊ฐ ์๋ฏธ # index ๊ฐ์ฅ ์์ ์์๊ฐ ์กด์ฌํ๋ ์์น..

๋ฌธ์ ์ค๋ช ์ ํ ์คํฌ์ด๋ ์ด๋ค ์คํฌ์ ๋ฐฐ์ฐ๊ธฐ ์ ์ ๋จผ์ ๋ฐฐ์์ผ ํ๋ ์คํฌ์ ๋ปํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ ํ ์คํฌ ์์๊ฐ ์คํํฌ → ๋ผ์ดํธ๋ ๋ณผํธ → ์ฌ๋์ผ๋, ์ฌ๋๋ฅผ ๋ฐฐ์ฐ๋ ค๋ฉด ๋จผ์ ๋ผ์ดํธ๋ ๋ณผํธ๋ฅผ ๋ฐฐ์์ผ ํ๊ณ , ๋ผ์ดํธ๋ ๋ณผํธ๋ฅผ ๋ฐฐ์ฐ๋ ค๋ฉด ๋จผ์ ์คํํฌ๋ฅผ ๋ฐฐ์์ผ ํฉ๋๋ค. ์ ์์์ ์๋ ๋ค๋ฅธ ์คํฌ(ํ๋ง ๋ฑ)์ ์์์ ์๊ด์์ด ๋ฐฐ์ธ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์คํํฌ → ํ๋ง → ๋ผ์ดํธ๋ ๋ณผํธ → ์ฌ๋์ ๊ฐ์ ์คํฌํธ๋ฆฌ๋ ๊ฐ๋ฅํ์ง๋ง, ์ฌ๋ → ์คํํฌ๋ ๋ผ์ดํธ๋ ๋ณผํธ → ์คํํฌ → ํ๋ง → ์ฌ๋์ ๊ฐ์ ์คํฌํธ๋ฆฌ๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ ํ ์คํฌ ์์ skill๊ณผ ์ ์ ๋ค์ด ๋ง๋ ์คํฌํธ๋ฆฌ1๋ฅผ ๋ด์ ๋ฐฐ์ด skill_trees๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ ๊ฐ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ ์กฐ๊ฑด ..

์ ๋ ฌ(sort) ์ด๋? ๋ณต์์ ์์๋ก ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ ํด์ง ๊ธฐ์ค์ ๋ฐ๋ผ ์๋ก ๋์ด๋๋ ์์ ์ด๋ค. ํ์ด์ฌ์ ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํ๋ฉด ์ง์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ ํ์๊ฐ ์๋ค. ํ์ด์ฌ ๋ด์ฅ ํจ์ sorted() ๋ฆฌ์คํธ์ ์ธ ์ ์๋ ๋ฉ์๋ .sort() ์ ๋ ฌ์ ์์๋ฅผ ๋ฐ๋๋กํ๊ธธ ์ํ ๋ ์ธ์๋ก reverse = True๋ฅผ ๋ฃ์ด์ค๋ค. ๋ฌธ์์ด๋ก ์ด๋ฃจ์ด์ง ๋ฆฌ์คํธ์ ๊ฒฝ์ฐ ์ ๋ ฌ ์์๋ ์ฌ์ ์์(์ํ๋ฒณ ์์)๋ฅผ ๋ฐ๋ฅธ๋ค. ๋ฌธ์์ด ๊ธธ์ด๊ฐ ๊ธด ๊ฒ์ด๋ผ๊ณ ํด์ ๋ ํฐ ๊ฒ์ด ์๋๋ค. ๋ฌธ์์ด ๊ธธ์ด ์์๋ก ์ ๋ ฌํ๊ณ ์ถ๋ค๋ฉด ์ ๋ ฌ์ ์ด์ฉํ๋ ํค(key)๋ฅผ ์ง์ ํด์ค๋ค. L = ['abcd', 'xyz', 'spam'] # ๋ฌธ์์ด ๊ธธ์ด๋ก ์ ๋ ฌ sorted(L, key=lambda x: len(x)) L = [ {'name': 'john', 's..

์ ํ ๋ฐฐ์ด์ ๋ฐ์ดํฐ๋ค์ด ์ (line) ์ฒ๋ผ ์ผ๋ ฌ๋ก ๋์ด์ ํํ๋ฅผ ๋งํ๋ค. ๋ณดํต ํ๋ก๊ทธ๋๋ฐ์์ ๋ฐฐ์ด์ด๋ผ๊ณ ํ๋ฉด ๊ฐ์ ์ข ๋ฅ์ ๋ฐ์ดํฐ๊ฐ ์ค์ง์ด ๋์ด์ ์๋๊ฒ์ ๋ปํ๋ค. python์์๋ ๋ฆฌ์คํธ๋ผ๋ ๋ฐ์ดํฐํ์ด ์๋ค. ๋ฐ์ดํฐ๋ฅผ ๋์ด๋์ ๋ชจ์์๋ฅผ ๋งํ ๋๋ ๋ฐฐ์ด(array), ํ์ด์ฌ์ ๋ฐ์ดํฐํ์ ๊ฐ๋ฆฌํฌ ๋์๋ ๋ฆฌ์คํธ(list)๋ผ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํ๊ฒ ๋ค. ๋ฆฌ์คํธ(๋ฐฐ์ด) ์ฐ์ฐ ๋ฆฌ์คํธ์ ๊ธธ์ด์ ๊ด๊ณ ์์ด ๋น ๋ฅด๊ฒ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ฒ๋๋ ์ฐ์ฐ๋ค O(1) ์์ ๋ง๋ถ์ด๊ธฐ : .append(๋ง๋ถ์ผ ์์) ๋์์ ๊บผ๋ด๊ธฐ : .pop(๊บผ๋ด๋ ์์ ์์น) ๋ฆฌ์คํธ์ ๊ธธ์ด์ ๋น๋กํด์ ์คํ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์ฐ์ฐ๋ค O(n) ์์ ์ฝ์ ํ๊ธฐ : .insert(์์์ ์์น, ์ฝ์ ํ ์์) ์์ ์ญ์ ํ๊ธฐ : del(๋ฆฌ์คํธ์ด๋ฆ[์ญ์ ํ ์์์ ์ธ๋ฑ์ค]) ์ถ..
- Total
- Today
- Yesterday
- ๋ถํธ ์๋์์ฑ
- ๊ฒ์ํ ์ญ์
- tomcat์ค์น
- ์ดํด๋ฆฝ์ค ์ค์น
- ๋ณ๋ช ์ฒ๋ฆฌ
- Java
- ๊ฐ๋ฐ
- Algorithm
- ๊ฒ์ํ๋ง๋ค๊ธฐ
- ์ ์ฒด๊ฒ์๋ฌผ ์กฐํ
- typeAliases
- ์๋ฐ
- ๊ฒ์๋ฌผ ์ญ์
- ์๋ฃ๊ตฌ์กฐ
- java ํ๊ฒฝ๋ณ์
- ๊ฒ์๋ฌผ์กฐํ
- ๊ฐ๋ฐํ๊ฒฝ๊ตฌ์ถ
- ๊ฒ์ํ ์กฐํ
- ์ดํด๋ฆฝ์ค ํ๊ธ ์ธ์ฝ๋ฉ
- ์คํ๋ง๋ถํธ ์๋์์ฑ
- java jdk ์ค์น
- mysql์ค์น
- ์๊ณ ๋ฆฌ์ฆ
- ์จ๋ฆฌ์์ค
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |