โโโ JAVA
โ โโโ src
โ โโโ baekjoon : ๋ฐฑ์ค ๋จ๊ณ๋ณ ๋ฌธ์ ํ์ด
โ โโโ solvedClass : solved.ac class๋ณ ๋ฌธ์ ํ์ด
โ โโโ AlgorithmType : ์๊ณ ๋ฆฌ์ฆ ์ ํ๋ณ ํ์ด
โโโ Python
โโโ src
โโโ AlgorithmType : ์๊ณ ๋ฆฌ์ฆ ์ ํ๋ณ ํ์ดํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ - ์๊ฐ์ด ์งง๊ณ , ์์์ ์ ๊ฒ ์ฌ์ฉ
์ฐ์ฐ์ ์ซ์๋ก ํ๊ธฐ
์๊ฐ ๋ณต์ก๋๋ฅผ ๋ ์ค์ํ๊ฒ ์๊ฐํ๊ธฐ ๋๋ฌธ์, ๋ณ๋ค๋ฅธ ๋ง์ด ์์ผ๋ฉด ์๊ฐ๋ณต์ก๋๋ฅผ ๋ปํจ
(์ค์ ๋ฌ๋ํ์์ ํ์ํ๋ ๊ฒ ๋ณด๋ค ๋ฐ์ดํฐ๋ ์ฌ์ฉ์์ ์ฆ๊ฐ์จ์ ๋ฐ๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ์์ธกํ๋ ๊ฒ ๋ชฉํ์ด๋ค.)
-> ์์์ ๊ฐ์ ์ซ์๋ค์ ๋ชจ๋ 1์ด ๋๋ค.
O(1) / ๋ฐฐ์ด์ ์์ ์ฐธ์กฐ
์ ๋ ฅ ๋ฐ์ดํฐ ํ์ ์ ํฌ๊ธฐ์ ์๊ด ์์ด ์ธ์ ๋ ์ผ์ ํ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋งํ๋ค.
- ๋ฐ์ดํฐ๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์ฑ๋ฅ ๋ณํ๊ฐ ์๋ค.
O(N) / ์์ฐจํ์
์ ๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ์ ๋น๋กํด์ ์ฒ๋ฆฌ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ํํํ ๋ ์ฌ์ฉ
- N์ ํฌ๊ธฐ๋งํผ ์ฒ๋ฆฌ ์๊ฐ์ด ๋๊ฒ๋๋ค.
O(Nn) /bubble sort
n์ ๋๋ฆฌ๋ฉด์, n์ผ๋ก ๋ ๋๋ฆด ๋ ์ฌ์ฉํ๋ค.
O(NM)
m์ n๋งํผ ๋๋ฆฐ๋ค.
O(2n)
ex) ํผ๋ณด๋์น ์์ด
- ์ฌ๊ท์ ์ผ๋ก ๊ตฌํ ๊ฐ๋ฅ
- ํจ์๋ฅผ ํธ์ถํ ๋๋ง๋ค, ๋ฐ๋ก ์ ์ ์ซ์์ ์ ์ ์ซ์๋ฅผ ์์์ผ ํ๊ธฐ ๋๋ฌธ์ ๋งค ๋ฒ ํจ์๋ฅผ ํธ์ถํ ๋๋ง๋ค, 2๋ฒ์ฉ ํธ์ถํ๋ค. -> 2์งํธ๋ฆฌ์ ํํ -> ํธ๋ฆฌ์ ๋์ด๋งํผ ๋ฐ๋ณตํ๋ค.
O(logN) / 2์ง ๊ฒ์
์ฒ๋ฆฌ๋ฅผ ํ ๋๋ง๋ค, ์ฒ๋ฆฌ ํด์ผ ํ ๋ฐ์ดํฐ ์์ด ๋ฐ์ฉ ์ค์ด๋๋ ๊ฒฝ์ฐ
O(sqrt(N)) / ์์ ํ์
๋ฌธ์ ๋ฅผ ํ ์ ์๋ ์๊ฐ์ด 1์ด์ธ ๊ฒฝ์ฐ
- N์ ๋ฒ์ 500์ธ ๊ฒฝ์ฐ : O(n3)
- N์ ๋ฒ์ 2,000์ธ ๊ฒฝ์ฐ : O(n2)
- N์ ๋ฒ์ 100,000์ธ ๊ฒฝ์ฐ : O(NlogN)
- N์ ๋ฒ์ 10,000,000์ธ ๊ฒฝ์ฐ : O(N)
- ํ๋ก๊ทธ๋จ์ ์คํ์ํจ ํ ์๋ฃํ๋๋ฐ ํ์ํ ์์์ ๊ณต๊ฐ
์ ๋ ฅ์ด n์ผ ๋ ์ฐ์ฐ ํ์ -> ์๊ณ ๋ฆฌ์ฆ ์๋
- ์ฐ์ฐ์ด ์ปค์ง๋ฉด ๊ณ์๋ ์๋ฏธ์์ด์ง๊ณ , ์ฐจ์๊ฐ ์ค์ํ๋ค! (ํฐ ์์๊ฐ ๋์ฌ ์ ์๋ ๊ฒฝ์ฐ ์กฐ์ฌ)
int a[1000] : 4KB
int a[1000000] : 4MB
int a[2000][2000] : 16MB
- ๋ฐ์ดํฐ์ ๊ฐ์๊ฐ 1000๋ง ๋จ์ ๋์ด๊ฐ์ง ์๋๋ก
- python 100๋ง ์ด์ ๋ฆฌ์คํธ ์ ์ธํ๋ ๊ฒฝ์ฐ ์ ์
import time
start_time = time.time() # ์ธก์ ์์
# ์์ค
end_time = time.time() # ์ธก์ ์ข
๋ฃ
print("time : ", end_time - start_time) # ์ถ๋ ฅ- ex) ๋ฐฐ์ด, ์ฐ๊ฒฐ๋ฆฌ์คํธ
- ex) ํธ๋ฆฌ, ๊ทธ๋ํ, ํด์
- ๊ฐ ํ์ธ ๋ณ๊ฒฝ : O(1)
- ์์์ ์์น ๊ฐ ์ถ๊ฐ/์ญ์ : O(n) / ๋ง์ง๋ง ์์น : O(1)
| ๋ฐฐ์ด | ์ฐ๊ฒฐ๋ฆฌ์คํธ | |
|---|---|---|
| k๋ฒ์งธ ์์์ ์ ๊ทผ | O(1) | O(k) |
| ์์ ์์น ์์ ์ถ๊ฐ / ์ ๊ฑฐ | O(N) | O(1) |
| ๋ฉ๋ชจ๋ฆฌ ์์ ๋ฐฐ์น | ์ฐ์ | ๋ถ์ฐ์ |
| ์ถ๊ฐ๋ก ํ์ํ ๊ณต๊ฐ | - | O(N) |
JAVA : HashMap<Integer,String> map = new HashMap<>(10)
- 'ํค'์ '๊ฐ'์ ์ ์ฅํ๋ ์๋ฃ ๊ตฌ์กฐ
- ํด์ ํจ์๋ฅผ ํตํด 'ํค'์ '๊ฐ'์ด ์ ์ฅ๋๋ ์์น๋ฅผ ๊ฒฐ์ ํ๋ฏ๋ก, ์ฌ์ฉ์๋ ๊ทธ ์์น๋ฅผ ์ ์ ์๊ณ , ์ฝ์ ๋๋ ์์์ ๋ค์ด ์๋ ์์น ๋ํ ๊ด๊ณ๊ฐ ์๋ค.
- ๊ฒ์ ๊ณผ ์ ์ฅ์ ํ๊ท ์ ์ธ ์๊ฐ ๋ณต์ก๋๊ฐ O(1)์ ์๋ ดํ๊ฒ ๋๋ค.
- ๊ฐ์ด ์ถ๊ฐ๋ก ๋ค์ด์ค๋ฉด List์ฒ๋ผ ์ ์ฅ๊ณต๊ฐ์ ํ ์นธ์ฉ ๋๋ฆฌ์ง ์๊ณ ์ฝ ๋๋ฐฐ๋ก ๋๋ฆฐ๋ค.
-> ์ด ๊ณผ์ ์ด ๊ณผ๋ถํ๊ฐ ๋ง์ด ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์ด๊ธฐ์ ์ ์ฅํด์ฃผ๋ ๊ฒ์ด ์ข๋ค.
- put() : HashMap์ ํค์ ๊ฐ์ ์ ์ฅ
- get() : ์ง์ ๋ ํค๊ฐ์ ๋ฐํํ๋ค.
- remove() : HashMap์์ ์ง์ ๋ ํค๋ก ์ง์ ๋ ๊ฐ์ ์ ๊ฑฐํ๋ค
- clear() : HashMap์ ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ์ ๊ฑฐํ๋ค.
- containsKey() : HashMap์ ์ง์ ๋ ํค๊ฐ ํฌํจ๋์ด ์๋์ง ์๋ฆผ
- isEmpty() : HashMap์ด ๋น์ด์๋์ง ํ์ธ
- size() : HashMap์์ ์ฅ๋ ์์์ ๊ฐ์๋ฅผ ๋ฐํํ๋ค.
- keySet() : HashMap์ ์ ์ฅ๋ ๋ชจ๋ ํค๊ฐ ์๋ Set์ ๋ฐํํ๋ค.
- ์ฐธ๊ณ https://vaert.tistory.com/107
JAVA : Stack stack = new Stack<>();
- ์์ ์ถ๊ฐ O(1)
- ์์ ์ ๊ฑฐ O(1)
- ์์ ํ์ธ(TOP) O(1)
- FILO
- Top
- pop() : ๊ฐ์ฅ ๋์ค์ ๋ฃ์ ๋ฐ์ดํฐ ์ญ์
- push() : ๋ฐ์ดํฐ ์ถ๊ฐ
- peek() : ๊ฐ์ฅ ๋์ค์ ๋ฃ์ ๋ฐ์ดํฐ ํ์ธ
- isEmpty() : ๋น์ด์๋์ง ํ์ธ
- size() : ์คํ์ ์๋ ์์ ํฌ๊ธฐ ๋ฐํ
JAVA : Queue queue = new LinkedList<>();
- ์์ ์ถ๊ฐ/์ ๊ฑฐ : O(1)
- ์ ์ผ ์/๋ค ์์ ํ์ธ : O(1)
- FIFO
- head, tail
- add() : ๋งจ ๋ค์ ๊ฐ ์ฝ์ (๋ฐํ)
- poll() : ๋งจ ์ ๊ฐ ์ ๊ฑฐ (๋ฐํ)
- offer() : ๋งจ ๋ค์ ๊ฐ ์ฝ์
- remove() : ๋งจ ์ ๊ฐ ์ ๊ฑฐ
- peek() : ๋งจ ์ ์์ ๋ฐํ // ์ค๋ฆฌํฝ
JAVA : Deque deque = new LinkedList<>();
- ์์ ์ถ๊ฐ/์ ๊ฑฐ : O(1)
- ์ ์ผ ์/๋ค ์์ ํ์ธ : O(1)
- ์ด์งํธ๋ฆฌ : ๊ฐ ๋
ธ๋๊ฐ ์์์ ์ต๋ 2๋ช
์ ๊ฐ์ง๋ ํธ๋ฆฌ
-> ์ ์์ํ, ์ค์์ํ, ํ์์ํ - ์ด์ง๊ฒ์ํธ๋ฆฌ : ์ผ์ชฝ ์๋ธํธ๋ฆฌ์๋ ํด๋น๋
ธ๋๋ณด๋ค ์์ ๊ฐ / ์ค๋ฅธ์ชฝ ์๋ธ ํธ๋ฆฌ์๋ ํด๋น ๋
ธ๋๋ณด๋ค ํฐ ๊ฐ
-> ์ค์์ํ ๋ฐฉ์์ ์ด๋ค.(์ ๋ ฌ ์์๋๋ก ์ฝ์ ์ ์์.) - Trie(ํธ๋ผ์ด) ํธ๋ฆฌ : ๋ฌธ์์ด์ ์ ์ฅํ๊ณ ํจ์จ์ ์ผ๋ก ํ์ํ๊ธฐ ์ํ ํธ๋ฆฌ ํํ์ ์๋ฃ๊ตฌ์กฐ
- ์ต๋๊ฐ์ด๋ ์ต์๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ๊ธฐ์ํด ๊ณ ์๋ ์์ ์ด์งํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋กํ ์๋ฃ๊ตฌ์กฐ
MinHeap : ๊ฐ์ฅ ์์๊ฐ์ด root๋
ธ๋
MaxHeap : ๊ฐ์ฅ ํฐ ๊ฐ์ด root๋
ธ๋
- ๋ ธ๋ ์ถ๊ฐ ์, ๊ฐ์ฅ ๋ง์ง๋ง์ ์ถ๊ฐํ๊ณ ์์ ๋ ธ๋์ ๋น๊ตํ๋ ๋ฐฉ์์ผ๋ก ์ ๋ ฌ
- ๋ ธ๋ ์ญ์ ์, root๋ ธ๋์ ๊ฐ์ ๋นผ๊ณ ์ ๋ ฌํ๋ ๋ฐฉ์
Tip!!
JAVA PriorityQueue ๋ ๊ธฐ๋ณธ์ ์ผ๋ก minHeap์ด๋ค.
// ์ต์ ํ
PriorityQueue<Integer> minHeap = new PriorityQueue<Integer>();
// ์ต๋ ํ
PriorityQueue<Integer> maxHeap = new PriorityQueue<Integer>(Comparator.reverseOrder());
// ์ต๋ ํ version2
PriorityQueue<Integer> maxHeap = PriorityQueue<>(new Comparator<Integer>(){
@Override
public int compare(Integer i1, Integer i2) {
return i2-i1;
}
});- ์ ์ (vertex) / ๊ฐ์ (edge)
- ๋ฐฉํฅ ์ ๋ฌด์ ๋ฐ๋ผ Directed / Undirected graph๋ก ๋๋๋ค.
- ์จํด ์ ๋ฌด์ ๋ฐ๋ผ Cyclic / Acyclic graph๋ก ๋๋๋ค.
- 1์ฐจ์ ๋ฆฌ์คํธ
- ์ฅ์
- ๊ฐ์ ๊ฐ์์ ๋น๋กํ๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ
- ํน์ ๋ ธ๋์์ ๋ชจ๋ ๋ ธ๋ ์ฐ๊ฒฐ ํ์ธ O(E)
- ๋จ์
- ํน์ ๋ ธ๋์์ ๋ ธ๋ ์ฐ๊ฒฐ ํ์ธ O(V)
- ์ฅ์
- 2์ฐจ์ ๋ฐฐ์ด
- ์ฅ์
- ๊ตฌํ ์ฌ์
- ํน์ ๋ ธ๋์์ ๋ ธ๋ ์ฐ๊ฒฐ ํ์ธ O(1)
- ๋จ์
- ํน์ ๋ ธ๋์์ ๋ชจ๋ ๋ ธ๋ ์ฐ๊ฒฐ ํ์ธ O(V)
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ํผ
- ์ฅ์
- Depth First Search(DFS) : ๊น์ด์ฐ์ ๊ฒ์ -> Stack ์ด์ฉ
- Breadth First Search(BFS) : ๋๋น์ฐ์ ๊ฒ์ -> Queue ์ด์ฉ
- Arrays.sort(arr) / Collections.sort(arr) : ๋ฐฐ์ด ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
- Arrays.sort(arr, Collections.reverseOrder()); : ๋ฐฐ์ด ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
- ArraysSort : dual-pivot QuickSort ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉ
- ๋ถํ ์ ๋ณต ์๊ณ ๋ฆฌ์ฆ์ ๋ํ์ ์ธ ์
- O(n + k) : n์ ๋ฆฌ์คํธ์ ๊ฐ์, k๋ ์ ์์ ์ต๋๊ฐ
- ์ ์๋ก ํํํ ์ ์๋ ์๋ฃ์ ๋ํด์๋ง ์ ์ฉ ๊ฐ๋ฅ
- ์นด์ดํธ๋ฅผ ์ํ ๊ณต๊ฐ์ ํ ๋นํ๊ธฐ ์ํด์ ์งํฉ ๋ด ๊ฐ์ฅ ํฐ ์ ์๋ฅผ ์์์ผ ํ๋ค.
- ์์ ํ์ ์๊ณ ๋ฆฌ์ฆ -> ๋ชจ๋ ๊ฒฝ์ฐ์ ์ ํ์
- ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๊ฐ๋ฅํ ๋ต์ ์์ ๋น๋ก
- ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ์ ํ ๊ตฌ์กฐ๋ก ๊ตฌ์กฐํ
- ๊ตฌ์กฐํ๋ ๋ฌธ์ ๊ณต๊ฐ์ ์ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ํด๋ฅผ ๊ตฌ์ฑํ ๋๊น์ง ํ์ํ๋ค.
- ๊ตฌ์ฑ๋ ํด๋ฅผ ์ ๋ฆฌํ๋ค.
- ๊ฑฐ๋ฆฌ์ธก์ ์ BFS๋ง ๊ฐ๋ฅ!
- BFS, DFS ์๊ฐ ๋ณต์ก๋
- ์ธ์ ๋ฆฌ์คํธ ๊ตฌํ -> O(N+E)
- ์ธ์ ํ๋ ฌ ๊ตฌํ -> O(N^2)
- ํ ๋ ธ๋์์ ๊ฐ ์ ์๋ ๋ ธ๋ ์ค ํ๋ ์ ํ
- ์ ํํ ๋ ธ๋์์ ๊ฐ ์ ์๋ ๋ ธ๋ ์ค ํ๋ ์ ํ (๋ฐฉ๋ฌธํ ๋ ธ๋๋ ์ ์ธ)
- ๊ฐ ์ ์๋ ๋ ธ๋๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด ์ด์ ๋ ธ๋๋ก ๋์์์ ๊ฐ ์ ์๋ ๋ ธ๋ ์ค ํ๋๋ฅผ ์ ํํ๋ค
- ๋ฏธ๋ก ์์ฑ, Cycle Detection, ์์ ์ ๋ ฌ
- ํ ๋ ธ๋์์ ๊ฐ ์ ์๋ ๋ ธ๋๋ฅผ ํ์ ์ถ๊ฐํ๋ค.
- ํ์์ ๋ ธ๋๋ฅผ ํ๋ ๊บผ๋ด์ด ๊บผ๋ธ ๋ ธ๋์์ ๊ฐ ์ ์๋ ๋ ธ๋๋ฅผ ํ์ ์ถ๊ฐํ๋ค.
- ํ์ ๋ ธ๋๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด break ํ๋ค.
- ์ต๋จ ๊ฒฝ๋ก, ์์ ๊ฒฝ๋ก ํ์, ์ต์ ์ ์ฅ ํธ๋ฆฌ
-
์ํฉ๋ง๋ค ์ต์ ์ ๊ฐ ๊ฒฐ์ -> ๋น ๋ฆ
-
์ํ ๊ณผ์ (์ ๊ฐ๊ฒ)
- ํด ์ ํ : ์ต์ ํด -> ๋ถ๋ถ ํด ์งํฉ์ ์ถ๊ฐ
- ์คํ ๊ฐ๋ฅ์ฑ ๊ฒ์ฌ : ๋ฌธ์ ์ ์ ์ฝ์กฐ๊ฑด์ ์๋ฐ๋์ง ์๋์ง ๊ฒ์ฌ
- ํด ๊ฒ์ฌ : ๋ฌธ์ ์ ํด๊ฐ ๋๋์ง ๊ฒ์ฌ / ์ ์ฒด ๋ฌธ์ ์ ํด๊ฐ ์์ฑ๋์ง ์์์ผ๋ฉด ํด ์ ํ๋ถํฐ ๋ค์ ์์
- ์ ์ฒด ๋ฌธ์ ๋ฅผ ์ฌ๋ฌ ๊ฐ์ ํ์ ๋ฌธ์ ๋ก ๋๋์ด ํ๊ณ , ํ์ ๋ฌธ์ ๋ค์ ํด๊ฒฐ๋ฐฉ๋ฒ๋ค์ ๊ฒฐํฉํ์ฌ ์ต์ข ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ์
- (์์ ๋ฌธ์ ๊ฐ ๋ฐ๋์ง ์์)
- ์ ๋ต์ ํ๋ฒ ๊ตฌํ์ผ๋ฉด ๊ทธ ์ ๋ต์ ์บ์์ ์ ์ฅ -> ๋ฉ๋ชจ์ด์ ์ด์ (๋ฐฐ์ด์ ์ ์ฅ) ์ด๋ผ๊ณ ํ๋ค. (์กฐ๊ฑด์ ๋ง๋ ์ต์ ์ ๊ฐ ์ ์ฅ)
- ์ฌ๊ท ํธ์ถ์ ์ด์ฉํด ๊ตฌํํ๋ค.
- ํน์ ์กฐ๊ฑด(๋ณดํต ๋ฐ๋ฅ)๊น์ง ์ฌ๊ทํธ์ถ ํ๊ณ ํน์ ๊ฐ(๋ฐ๋ฅ ๊ฐ)์ returnํ๋ค.
- ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ตฌํํ๋ค.
- ๋ฐ๋ฅ๋ถํฐ ์์ํด n์ ๊ฐ์ ์์๋ธ๋ค.
- ์์ ๋ฌธ์ ๋ก ๋๋์ด ํธ๋ ๋ฐฉ๋ฒ
- ์ฃผ์ด์ง ๋ฌธ์ ์ ๋ต์ ๊ตฌํ๊ธฐ ์ํด ํ์ฌ ์ํ์์ ๊ฐ๋ฅํ ๋ชจ๋ ํ๋ณด๊ตฐ์ ๋ฐ๋ผ ๊ฐ๋ฉฐ ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ (๋ณดํต visited ๋ฐฐ์ด๋ก ์ํ ์ฒดํฌ)
- ์ฌ๊ทํธ์ถ์ ํ๊ธฐ์ ์ ์ํ๋ฅผ ์ฌ๊ทํธ์ถ์ด ๋๋ ๋ค ๋๋๋ฆฌ๋ ๊ฒ์ด ํต์ฌ!
- Olog(N)
- ์ฌ๊ท ํจ์๋ ์ฌ๊ท ๊น์ด๊ฐ ์์ธก ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์์ฃผ๋ก ์ฌ์ฉ
- ์ํ ์กฐ๊ฑด / ์ข ๋ฃ์กฐ๊ฑด
- (๋ฐ๋์ ํน์ ์ ๋ ฅ์ ๋ํด์ ์๊ธฐ ์์ ์ ํธ์ถํ์ง ์๊ณ ์ข ๋ฃ - Base Codition) ํ์!
-
- ์๊ธฐ์ฐธ์กฐ๋ฅผ ํ์ง ์๋๋ค.
-
- ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ธ๋ค.
-
- ์ฌ๊ทํธ์ถ์ ๋ฐฉํฅ์ด ๊ธฐ์ ์ฌ๋ก๋ก ๊ฐ์ผ ํ๋ค.
-
- ์ฌ๊ท ํธ์ถ์ ์ต๋ ๊น์ด (x)
-
- ์ฌ๊ทํธ์ถ์ ์ ์ธํ ์๊ฐ ๋ณต์ก๋ (y)
-
- ํ๋์ ํธ์ถ์์ ์ฌ๊ทํจ์์ ํธ์ถ ํ์ (z)
- => O(y*z^x)
- ์์๋๋ก ๊ฒ์
- ํ๊ท ๋น๊ต ํ์ : (N+1)/2
- ์ ๋ ฌ์ด ๋์ด์์ ๊ฒฝ์ฐ ํ๊ท ๋น๊ต ํ์๊ฐ ๋ฐ์ผ๋ก ์ค์ด๋ ๋ค.
- ์๊ฐ ๋ณต์ก๋ O(n)
-
๊ฐ์ด๋ฐ ํค ๊ฐ๊ณผ ๋น๊ตํ์ฌ ๋ค์ ๊ฒ์ ์์น ๊ฒฐ์ ํ, ๊ฒ์
-
์๋ฃ๊ฐ ์ ๋ ฌ๋ ์ํ์ฌ์ผ ํ๋ค.
-
์๊ฐ ๋ณต์ก๋ O(logN)
-
์์์ ๊ณผ ์ข ๋ฃ์ ์ ์ด์ฉํ์ฌ ๊ฒ์ ๋ฐ๋ณต
-
์๋ฃ์ ์ฝ์ ์ด๋ ์ญ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ ๋ ฌ์ํ๋ก ์ ์งํ๋ ์์ ํ์
// TODO : ๋ธ๋ก๊ทธ ๊ธ ์ถ๊ฐ ์์
-
์ค์ํ ์ฌ์ฉํ ๋ double ์ฐ๋๊ฒ ์ข๋ค!
-
๋ฌธ์์ด ์ถ๊ฐ : String class์ฌ์ฉ StringBuilder class ์ฌ์ฉ
-
intํ ์๋ฆฌ์ ๊ตฌํ๊ธฐ : Math.log(์ซ์)+1;
-
๊ฑฐ๋ญ์ ๊ณฑ ๊ตฌํ๊ธฐ : Math.paw(a, b);
-
Int to String : Integer.toString();
-
String to Int : Integer.parseInt();