๊น์ด ์ฐ์ ์ํ (Depth First Traversal) ์ค์ ์ํ (in-order travelsal) : ์ผ์ชฝ ์๋ธํธ๋ฆฌ๋ฅผ ์ํํ ๋ค ๋ ธ๋ x๋ฅผ ๋ฐฉ๋ฌธ, ๊ทธ๋ฆฌ๊ณ ๋์ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๋ฅผ ์ํ ์ ์ ์ํ (pre-order travelsal) : ๋ ธ๋ x๋ฅผ ๋ฐฉ๋ฌธํ ํ์ ์ผ์ชฝ ์๋ธํธ๋ฆฌ๋ฅผ ์ํ, ๋ง์ง๋ง์ผ๋ก ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๋ฅผ ์ํ ํ์ ์ํ (post-order traversal) : ์ผ์ชฝ ์๋ธํธ๋ฆฌ๋ฅผ ์ํ, ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๋ฅผ ์ํ ํ ๋ง์ง๋ง์ผ๋ก ๋ ธ๋ x๋ฅผ ๋ฐฉ๋ฌธ class Node: def __init__(self, item): self.data = item self.left = None self.right = None def inorder(self): traversal = [] if self.left: trav..
์ด์ง ํธ๋ฆฌ๋ ํธ๋ฆฌ์ ํฌํจ๋๋ ๋ชจ๋ ๋ ธ๋์ ์ฐจ์๊ฐ 2 ์ดํ์ธ ํธ๋ฆฌ๋ฅผ ๋งํ๋ค. ์ฆ ๋ชจ๋ ๋ ธ๋๋ ์์์ด ์๊ฑฐ๋ (๋ฆฌํ๋ ธ๋์ ๊ฒฝ์ฐ), ํ๋๋ง ์๊ฑฐ๋ ์๋๋ฉด ๋ ์๋ ์ธ ๊ฒฝ์ฐ ์ค ํ๋์ ํด๋นํ๋ค. ์ด์ง ํธ๋ฆฌ์ ์ถ์์ ์๋ฃ๊ตฌ์กฐ ์ฐ์ฐ์ ์ ์ size() - ํ์ฌ ํธ๋ฆฌ์ ํฌํจ๋์ด ์๋ ๋ ธ๋์ ์๋ฅผ ๊ตฌํจ depth() - ํ์ฌ ํธ๋ฆฌ์ ๊น์ด (๋๋ ๋์ด; height)๋ฅผ ๊ตฌํจ ์ํ (traversal) ์ด์ง ํธ๋ฆฌ์ ์๋ฃ๊ตฌ์กฐ ๊ตฌํ # ๋ ธ๋ ํด๋์ค # ์ด์งํธ๋ฆฌ์ ๊ตฌํ - ๋ ธ๋(node) class Node: def __init__(self, item): self.data = item self.left = None self.right = None # ํธ๋ฆฌ ํด๋์ค # ์ด์ง ํธ๋ฆฌ์ ๊ตฌํ - ํธ๋ฆฌ(tree) class BinaryT..
ํธ๋ฆฌ(tree)๋ ๋ฐ์ดํฐ์ ๊ฒ์๊ณผ ํ์์ ์์ฃผ ๋๋ฆฌ ์ด์ฉ๋๋ ์๋ฃ๊ตฌ์กฐ๋ก์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ๋๋ ๊ฒ์ ์์ง ๋ฑ์์ ์์ฃผ ๋ง์ด ์ด์ฉ๋๋ค. ํธ๋ฆฌ๋ ์ํํ๋ ๊ธธ์ด ์๋ ๊ทธ๋ํ(graph)์ด๊ณ , ์ ์ (node)์ ๊ฐ์ (edge)์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ์ ๋ฐฐ์น ํํ๋ฅผ ์ถ์ํํ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ํธ๋ฆฌ์ ์ฉ์ด ์ดํด ์ด์ง ํธ๋ฆฌ (binary trees) ๋ชจ๋ ๋ ธ๋์ ์ฐจ์๊ฐ 2 ์ดํ์ธ ํธ๋ฆฌ๋ฅผ ๋งํ๋ค. ์ด์งํธ๋ฆฌ๋ ์ฌ๊ท์ ์ผ๋ก ์ ์ํ ์ ์๋๋ฐ ๋นํธ๋ฆฌ(empty tree)์ด๊ฑฐ๋ ๋ฃจํธ ๋ ธ๋ + ์ผ์ชฝ ์๋ธํธ๋ฆฌ + ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ (๋จ, ์ด๋ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ ๋ํ ์ด์งํธ๋ฆฌ)์ด๋ฉด ์ด์งํธ๋ฆฌ์ด๋ค. ํฌํ ์ด์ง ํธ๋ฆฌ (full binary tree) ๋ชจ๋ ๋ ๋ฒจ์์์ ๋ ธ๋๋ค์ด ๋ชจ๋ ์ฑ์์ ธ ์๋ ์ด์งํธ๋ฆฌ๋ฅผ ๋งํ๋ค. ํฌํ ์ด์ง ํธ๋ฆฌ๋ ๋์ด๊ฐ K..
๊ธฐ์กด์ ํ๋ ์ ์ ์ ์ถ, ์ฆ FIFO (First-In First Out)๋ฐฉ์์ด ์ ์ฉ์ด ๋๋ค. ์ฐ์ ์์ ํ๋ ์ด ๋ฐฉ์์ ๋ฐ๋ฅด์ง ์๊ณ ์์๋ค์ ์ฐ์ ์์์ ๋ฐ๋ผ ๊บผ๋ด๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๋ํ์ ์ธ ์์ฉ ์๋ก๋ ์ด์์ฒด์ ์์ CPU ์ค์ผ์ค๋ฌ๋ฅผ ๊ตฌํํ ๋ ํ์ฌ ์คํํ ์ ์๋ ์์ ๋ค ์ค ๊ฐ์ฅ ์ฐ์ ์์๊ฐ ๋์ ๊ฒ์ ๊ณจ๋ผ ์คํํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ค ์ ์๋ค. ์ฐ์ ์์ ํ์ ๊ตฌํ ์ฐ์ ์์ ํ๋ฅผ ๊ตฌํํ ๋ ์๋ก ๋ค๋ฅธ ๋๊ฐ์ง ๋ฐฉ์์ด ๊ฐ๋ฅํ๋ค. ํ์ ์์๋ฅผ ๋ฃ์ ๋ (enqueueํ ๋) ์ฐ์ ์์ ์์๋๋ก ์ ๋ ฌํด ๋๋ ๋ฐฉ๋ฒ ํ์์ ์์๋ฅผ ๊บผ๋ผ ๋ (dequeueํ ๋) ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ๊ฒ์ ์ ํํ๋ ๋ฐฉ๋ฒ ๋๊ฐ์ง ๋ฐฉ๋ฒ ์ค 1๋ฒ์ด ๋ ์ ๋ฆฌํ๋ค. ๋ง์ฝ ํ์ ๋ฐ์ดํฐ ์์๋ค์ด ์ฐ์ ์์๊ฐ ์๊ด์์ด ๋์ด์ ์๋ค๊ณ ํ๋ฉด ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ..
ํ์ ํ์ฉ ์๋ฃ๋ฅผ ์์ฑํ๋ ์์ ๊ณผ ๊ทธ ์๋ฃ๋ฅผ ์ด์ฉํ๋ ์์ ์ด ๋น๋๊ธฐ์ ์ผ๋ก(asynchronously) ์ผ์ด๋๋ ๊ฒฝ์ฐ ์๋ฃ๋ฅผ ์์ฑํ๋ ์์ ์ด ์ฌ๋ฌ ๊ณณ์์ ์ผ์ด๋๋ ๊ฒฝ์ฐ ์๋ฃ๋ฅผ ์ด์ฉํ๋ ์์ ์ด ์ฌ๋ฌ๊ณณ์์ ์ผ์ด๋๋ ๊ฒฝ์ฐ ์๋ฃ๋ฅผ ์์ฑํ๋ ์์ ๊ณผ ๊ทธ ์๋ฃ๋ฅผ ์ด์ฉํ๋ ์์ ์ด ์์ชฝ ๋ค ์ฌ๋ฌ ๊ณณ์์ ์ผ์ด๋๋ ๊ฒฝ์ฐ ์๋ฃ๋ฅผ ์ฒ๋ฆฌํ์ฌ ์๋ก์ด ์๋ฃ๋ฅผ ์์ฑํ๊ณ , ๋์ค์ ๊ทธ ์๋ฃ๋ฅผ ๋ ์ฒ๋ฆฌํด์ผ ํ๋ ์์ ์ ๊ฒฝ์ฐ ํํ ํ(Circular Queue) ์ ํด์ง ๊ฐ์์ ์ ์ฅ ๊ณต๊ฐ์ ๋น ๋๋ ค๊ฐ๋ฉฐ ์ด์ฉ ํ๊ฐ ๊ฐ๋์ฐจ๋ฉด ๋์ด์ ์์๋ฅผ ๋ฃ์ ์ ์์ผ๋ ํ๊ฐ ๊ฐ๋ ์ฐผ๋์ง ๋น์ด์๋์ง ํ๋จํ๊ธฐ ์ํด์๋ ํ์ ๊ธธ์ด๋ฅผ ๊ธฐ์ตํ๊ณ ์์ด์ผํ๋ค. ํํ ํ์ ์ถ์์ ์๋ฃ๊ตฌ์กฐ ๊ตฌํ ํํ ํ๋ฅผ ๊ตฌํํ๋๋ฐ์๋ ์ ํ ๋ฐฐ์ด์ ์ด์ฉํ๊ฑฐ๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํ ์ ์์ง๋ง ์ฌ๊ธฐ..
๋๋์ด ํ! ์คํ๊ณผ ๋๋ถ์ด ๋งค์ฐ ๋น๋ฒํ๊ฒ ์ด์ฉ๋๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ํ๋ ์๋ฃ(data element)๋ฅผ ๋ณด๊ดํ ์ ์๋ ์ ํ๊ตฌ์กฐ๋ก ์ ํ๋ฐฐ์ด, ์ฐ๊ฒฐ ๋ฆฌ์คํธ, ์คํ๊ณผ ๋น์ทํ์ง๋ง ์คํ๊ณผ๋ ๋ฐ๋์ธ ํน์ฑ์ ๊ฐ์ง๊ณ ์๋ค. ํ๋ ๋ฃ์ ๋์๋ ํ ์ชฝ ๋์์ ๋ฐ์ด ๋ฃ์ด์ผ(enqueue์ฐ์ฐ)ํ๊ณ ๊บผ๋ผ ๋์๋ ๋ฐ๋ ์ชฝ์์ ๋ฝ์ ๊บผ๋ด๋(dequeue์ฐ์ฐ) ์ ์ ์ ์ถ(FIFO; First-In First-Out)์ ํน์ฑ์ ๊ฐ์ง๊ณ ์๋ค. ํ์ ๋์ ํ์ ์ถ์์ ์๋ฃ๊ตฌ์กฐ ๊ตฌํ 1. ๋ฐฐ์ด(array)์ ์ด์ฉํ์ฌ ๊ตฌํ python ๋ฆฌ์คํธ์ ๋ฉ์๋๋ค์ ์ด์ฉ 2. ์ฐ๊ฒฐ ๋ฆฌ์คํธ(linked list)๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํ ์ด์ ์ ๊ตฌํํ ์๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ์ด์ฉ ์ฐ์ฐ์ ์ ์ size() - ํ์ฌ ํ์ ๋ค์ด์๋ ๋ฐ์ดํฐ ์์์ ์๋ฅผ ๊ตฌํจ isEmpty(..
ํ์ ํ๊ธฐ ์์ ๊ณ์ฐ ๋ฌธ์ ์ค๋ช ์ธ์๋ก ์ฃผ์ด์ง ๋ฌธ์์ด expr ์ ์๊ดํธ์ ์ฌ์น์ฐ์ฐ ๊ธฐํธ, ๊ทธ๋ฆฌ๊ณ ์ ์๋ค๋ก๋ง ์ด๋ฃจ์ด์ง ์ค์ ํํ ์์์ ๋๋ค. ํจ์ solution() ์ ์ด ์์์ ๊ฐ์ ๊ณ์ฐํ์ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํ๋๋ก ์์ฑ๋์ด ์์ต๋๋ค. ์ด ํจ์๋ ์ฐจ๋ก๋ก splitTokens(), infixToPostfix(), ๊ทธ๋ฆฌ๊ณ postfixEval() ํจ์๋ฅผ ํธ์ถํ์ฌ ์ด ์์์ ๊ฐ์ ๊ณ์ฐํ๋๋ฐ, splitTokens() - ๊ฐ์ ๋ด์ฉ์์์ ๊ฐ์ ์ฝ๋๋ก ์ด๋ฏธ ๊ตฌํ๋์ด ์์ต๋๋ค. infixToPostfix() - ์ง๋ ๊ฐ์์ ์ฐ์ต๋ฌธ์ ์์ ์์ฑํ๋ ์ฝ๋๋ฅผ ์์ ํ์ฌ, ๋ฌธ์์ด์ด ์๋ ๋ฆฌ์คํธ๋ฅผ ๋ฆฌํดํ๋๋ก ์์ฑํฉ๋๋ค. postfixEval() - ์ด๋ฒ ๊ฐ์์ ์ฐ์ต๋ฌธ์ ์ ๋๋ค. ํจ์์ ๋ด์ฉ์ ์์ฑํ์ธ์. ์ฆ, ๋ ๊ฐ์ ํจ์ in..
์ค์ ํ๊ธฐ๋ฒ ( infix notation ) ์ฐ์ฐ์๊ฐ ํผ์ฐ์ฐ์๋ค์ ์ฌ์ด์ ์์น ( A + B ) * ( C + D ) ํ์ ํ๊ธฐ๋ฒ ( postfix notation ) ์ฐ์ฐ์๊ฐ ํผ์ฐ์ฐ์๋ค์ ๋ค์ ์์น A B + C D + * ์ค์ ํํ์ -> ํ์ ํํ์ ๊ดํธ์ ์ฒ๋ฆฌ ์ฌ๋ ๊ดํธ๋ ์คํ์ push, ๋ซ๋ ๊ดํธ๋ฅผ ๋ง๋๋ฉด ์ฌ๋ ๊ดํธ๊ฐ ๋์ฌ ๋ ๊น์ง popํ๋ค. ์ฐ์ฐ์๋ฅผ ๋ง๋ฌ์ ๋, ์ฌ๋ ๊ดํธ ๋๋จธ๊น์ง popํ์ง ์๋๋ก ํ๋ ค๋ฉด ์ฌ๋ ๊ดํธ์ ์ฐ์ ์์๋ ๊ฐ์ฅ ๋ฎ๊ฒ ์ค์ ํด์ผํ๋ค. ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ ์ฐ์ฐ์์ ์ฐ์ ์์ ์ค์ ์ ํ์ด์ฌ ์ฌ์ ์ ํ์ฉํ์ฌ prec๋ฅผ ์์ฑํ๋ค. ์ค์ ํํ์์ ์ผ์ชฝ๋ถํฐ ํ ๊ธ์์ฉ ์ฝ์ด์ ํผ์ฐ์ฐ์์ด๋ฉด ๊ทธ๋ฅ ์ถ๋ ฅ, '('์ด๋ฉด ์คํ์ push, ')'์ด๋ฉด '('์ด ๋์ฌ ๋๊น์ง popํด์ ์ถ๋ ฅํ๋ค. ์ฐ์ฐ์..
- Total
- Today
- Yesterday
- ๊ฐ๋ฐ
- typeAliases
- ๊ฒ์ํ ์กฐํ
- ๊ฒ์ํ ์ญ์
- ๋ณ๋ช ์ฒ๋ฆฌ
- Java
- ๊ฒ์๋ฌผ์กฐํ
- ์๋ฃ๊ตฌ์กฐ
- ๊ฒ์๋ฌผ ์ญ์
- ๊ฒ์ํ๋ง๋ค๊ธฐ
- ์ดํด๋ฆฝ์ค ํ๊ธ ์ธ์ฝ๋ฉ
- ์๋ฐ
- java jdk ์ค์น
- tomcat์ค์น
- ์จ๋ฆฌ์์ค
- ๊ฐ๋ฐํ๊ฒฝ๊ตฌ์ถ
- ์ ์ฒด๊ฒ์๋ฌผ ์กฐํ
- java ํ๊ฒฝ๋ณ์
- ์คํ๋ง๋ถํธ ์๋์์ฑ
- ์ดํด๋ฆฝ์ค ์ค์น
- ์๊ณ ๋ฆฌ์ฆ
- mysql์ค์น
- ๋ถํธ ์๋์์ฑ
- Algorithm
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 29 | 30 |