๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ
์ด์งํ์ ํธ๋ฆฌ ๊ตฌ์กฐ ์ด์งํ์ ํธ๋ฆฌ์ ์กฐ๊ฑด (์ด์ง ํธ๋ฆฌ์ ๋ค๋ฅด๋ค) ๋ชจ๋ ์์๋ ์ค๋ณต๋ ๊ฐ์ ๊ฐ์ง๋ฉด ์๋๋ค. ํธ๋ฆฌ์ ๋ฃจํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ์ ์กด์ฌํ๋ ๋
ธ๋๋ค์ ๊ฐ์ ๋ฃจํธ์ ๊ฐ๋ณด๋ค ์์์ผ ํ๋ค. ๋ฐ๋๋ก ์ค๋ฅธ์ชฝ์ ์กด์ฌํ๋ ๋
ธ๋๋ค์ ๊ฐ์ ๋ฃจํธ์ ๊ฐ๋ณด๋ค ์ปค์ผ ํ๋ค. ์ด์งํ์ ํธ๋ฆฌ์ ์ฝ์
์์ ์ด์งํธ๋ฆฌ์ ์กฐ๊ฑด์ ์ด์ฉํด์ ์ฝ์
์ ์ ๊ทธ๋ฆผ ์ฒ๋ผ ํด์ฃผ๋ฉด ๋๋ค. ์ฝ์
์ฝ๋๋ฅผ ์์ฑํด ๋ณด๋ฉด, public class BinaryTree { Node root; public void insertNode(int value) { /* root๊ฐ ๋น์์ ๊ฒฝ์ฐ */ if(root == null){ root = new Node(value); }else { Node temp = this.root; while(true) { /* ์ผ์ชฝ์ผ๋ก ๊ฐ์ผ ํ..
๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ
BFS (๋๋น ์ฐ์ ํ์) BFS์ ์ฅ์ ๋
ธ๋์ ์๊ฐ ์ ๊ณ ๊น์ด๊ฐ ์์ ๊ฒฝ์ฐ ๋น ๋ฅด๊ฒ ๋์ํ ์ ์๋ค. ๋จ์ ๊ฒ์ ์๋๊ฐ ๊น์ด ์ฐ์ ํ์(DFS)๋ณด๋ค ๋น ๋ฆ ๋๋น๋ฅผ ์ฐ์ ํ์ํ๊ธฐ์ ๋ต์ด ๋๋ ๊ฒฝ๋ก๊ฐ ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ์๋ ์ต๋จ๊ฒฝ๋ก์์ ๋ณด์ฅํ๋ค. ์ต๋จ๊ฒฝ๋ก๊ฐ ์กด์ฌํ๋ค๋ฉด ์ด๋ ํ ๊ฒฝ๋ก๊ฐ ๋ฌดํํ ๊น์ด์ง๋คํด๋ ์ต๋จ๊ฒฝ๋ก๋ฅผ ๋ฐ๋์ ์ฐพ์ ์ ์๋ค. BFS์ ๋จ์ ์ฌ๊ทํธ์ถ์ DFS์๋ ๋ฌ๋ฆฌ ํ์ ๋ค์์ ํ์ํ ์ ์ ๋ค์ ์ ์ฅํด์ผ ํ๋ฏ๋ก ์ ์ฅ๊ณต๊ฐ์ด ๋ง์ด ํ์ํ๋ค. ๋
ธ๋์ ์๊ฐ ๋์ด๋๋ฉด ํ์ํด์ผํ๋ ๋
ธ๋ ๋ํ ๋ง์์ง๊ธฐ์ ๋นํ์ค์ ์ด๋ค. BFS ๊ตฌํ Queue์ ๋ฃจํธ๋ฅผ ๋ฃ์ด์ฃผ๊ณ , ์๋์ ์์๋ฅผ ๋ฐ๋ณตํ๋ฉด ๋๋ค. Queue์์ ํ๋์ ๋
ธ๋๋ฅผ ๊บผ๋
๋๋ค. ํด๋น ๋
ธ๋์ ์ฐ๊ฒฐ๋ ๋
ธ๋ ์ค ๋ฐฉ๋ฌธํ์ง ์์ ๋
ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๊ณ , ์ฐจ๋ก๋๋ก ํ์ ์ฝ์
ํฉ๋๋ค. /..
๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ
๋ฐฑํธ๋ํน ์ด๋? ๋ฐฑํธ๋ํน์ ๋ชจ๋ ์กฐํฉ์ ์๋ฅผ ์ดํด๋ณด์ง๋ง, ์กฐ๊ฑด์ด ๋ง์กฑํ ๋๋ง ์ดํด๋ณด๊ธฐ ๋๋ฌธ์ ์ด๋ค ๊ฒฝ์ฐ์ ๋ฐ๋ผ ํจ์ฌ ๋น ๋ฅผ์๋ ์๋ค. ๋ฐฑํธ๋ํน ์คํ ์์ ๋ฐฑํธ๋ํน์ DFS(๊น์ด ์ฐ์ ํ์)์ ๋จผ์ ์คํํ๋ฉด์ ๋ ์ด์ ํ์์ ์งํํ ์ ์๋ ์ํฉ์ด๋ฉด ๋ค์ ๋๋์ ๊ฐ์(๋ฐฑํธ๋ํน) ํ์์ ์งํํ๋ค. ๊ด๋ จ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด๋ฉด ์ดํด๊ฐ ์ ๋ ๊ฒ์ด๋ค. www.acmicpc.net/step/34 ๋ฐฑํธ๋ํน ๋จ๊ณ ์กฐ๊ธ ๋ ๋ณต์กํ ๋ฐฑํธ๋ํน ๋ฌธ์ 1 www.acmicpc.net N๊ณผ M (1) ํ์ด๋ณด๊ธฐ ์์ฐ์ N์ด ์ฃผ์ด์ง๋ฉด 1๋ถํฐ N๊น์ง ์์ฐ์ ์ค์์ ์ค๋ณต ์์ด M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด์ ์ถ๋ ฅํ๋ฉด ๋๋ค. ์๋ฅผ ๋ค์ด, N : 3 , M : 3 ์ผ๋, ์ค๋ณต ์์ด ์๋ ์ฒ๋ผ ์ถ๋ ฅ์ํค๋ฉด ๋๋ค. ---------------------------..
๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ
์ฌ๊ท(Recursion) ์ด๋ ๋ฌด์์ผ๊น? ์ด๋ ํ ์ปดํจํฐ๊ณตํ๊ณผ ํ์์ด ์ ๋ช
ํ ๊ต์๋์ ์ฐพ์๊ฐ ๋ฌผ์๋ค. "์ฌ๊ทํจ์๊ฐ ๋ญ๊ฐ์?" "์ ๋ค์ด๋ณด๊ฒ. ์๋ ์๋ ํ ์ฐ ๊ผญ๋๊ธฐ์ ์ด์ธ์ ๋ชจ๋ ์ง์์ ํต๋ฌํ ์ ์ธ์ด ์์์ด. ๋ง์ ์ฌ๋๋ค์ ๋ชจ๋ ๊ทธ ์ ์ธ์๊ฒ ์๋ง์ ์ง๋ฌธ์ ํ๊ณ , ๋ชจ๋ ์งํ๋กญ๊ฒ ๋๋ตํด ์ฃผ์์ง. ๊ทธ์ ๋ต์ ๋๋ถ๋ถ ์ณ์๋ค๊ณ ํ๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ ๋ , ๊ทธ ์ ์ธ์๊ฒ ํ ์ ๋น๊ฐ ์ฐพ์์์ ๋ฌผ์์ด. "์ฌ๊ทํจ์๊ฐ ๋ญ๊ฐ์?" "์ ๋ค์ด๋ณด๊ฒ. ์๋ ์๋ ํ ์ฐ ๊ผญ๋๊ธฐ์ ์ด์ธ์ ๋ชจ๋ ์ง์์... ์ถ์ฒ : namu.wiki/w/%EC%9E%AC%EA%B7%80%ED%95%A8%EC%88%98 ํฉํ ๋ฆฌ์ผ๋ก ์์๋ณด๋ ์ฌ๊ท ์๊ณ ๋ฆฌ์ฆ ๋จผ์ ํฉํ ๋ฆฌ์ผ ์ด๋? ์ซ์ n์ด ์ฃผ์ด์ก์ ๋, n ๋ถํฐ 1๊น์ง์ ๊ณฑ์ ๊ฒฐ๊ณผ๋ฅผ ๋ปํ๋ค. 0! = 1 1! =..
๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ
์๋
ํ์ธ์, ์๊ณ ๋ฆฌ์ฆ์ ์ ๋ฆฌํ๋ ํฌ์คํ
์
๋๋ค. ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ฐธ๊ณ ํ์๋ ค๋ฉด ํด๋น ์นดํ
๊ณ ๋ฆฌ๋ฅผ ์ด์ฉํด์ฃผ์ธ์. ๐ '๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ' ์นดํ
๊ณ ๋ฆฌ์ ๊ธ ๋ชฉ๋ก ๊ณต๋ถํ ๊ฒ๋ค ์ ๋ฆฌํ ๋ด์ฉ์ ํฌ์คํ
ํฉ๋๋ค. iseunghan.tistory.com ๋ถํ ์ ๋ณต (Merge Sort) Merge Sort, ๋ถํ ์ ๋ณต, ๋ณํฉ ์ ๋ ฌ, ํฉ๋ณ ์ ๋ ฌ ์ด๋ผ๊ณ ๋ ํ๋ค. ์๊ฐ๋ณต์ก๋๋ ์ต์
์ ์ํฉ๊น์ง๋ O(n log n)์ ๋ณด์ฅํ๋ค. ๋๋ ์ด ์๊ณ ๋ฆฌ์ฆ์ ๊ณต๋ถํ ๋, ๋ถํ ์ ๋ณต์ด๋ผ๊ณ ๋ฐฐ์์ ๋ถํ ์ ๋ณต์ด๋ผ๊ณ ์นญํ๊ฒ ๋ค. ๊ทธ๋ ๋ค๋ฉด ์ ๋ถํ ์ ๋ณต์ผ๊น? Merge Sort๊ฐ O(n logn)์ ๋ณด์ฅํ ์ ์์๋ ์ด์ ๋ ์ ๋ ฌ ํ ๋ฐฐ์ด์ ๋ฐ์ผ๋ก ๋ถํ ํ๋ค ๊ฐ๊ฐ ์ ๋ ฌ ์ํค๊ณ ํฉ์น๊ธฐ ๋๋ฌธ์ ์๋๊ฐ ๋น ๋ฅด๋ค๊ณ ํ ์ ์๋ค. (์๋์ ์ด๋ฏธ์ง๋ฅผ ๋ณด์) ..
๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ
์๋
ํ์ธ์, ์๊ณ ๋ฆฌ์ฆ์ ์ ๋ฆฌํ๋ ํฌ์คํ
์
๋๋ค. ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ฐธ๊ณ ํ์๋ ค๋ฉด ํด๋น ์นดํ
๊ณ ๋ฆฌ๋ฅผ ์ด์ฉํด์ฃผ์ธ์. ๐ '๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ' ์นดํ
๊ณ ๋ฆฌ์ ๊ธ ๋ชฉ๋ก ๊ณต๋ถํ ๊ฒ๋ค ์ ๋ฆฌํ ๋ด์ฉ์ ํฌ์คํ
ํฉ๋๋ค. iseunghan.tistory.com ๊ณ์ ์ ๋ ฌ (Counting Sort) ์นด์ดํ
์ ๋ ฌ์ ์๊ฐ๋ณต์ก๋๊ฐ ๐ถ(๐) ์ผ๋ก ์๋๊ฐ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ํต ์ ๋ ฌ(Quick Sort), ํฉ๋ณ ์ ๋ ฌ(Merge Sort) ์ ํ๊ท ์๊ฐ๋ณต์ก๋๋ ๐ถ(nlogn) ์ธ๋ฐ ์นด์ดํ
์ ๋ ฌ์ ์๊ฐ๋ณต์ก๋๊ฐ ๐ถ(๐) ์ผ๋ก ์๋๊ฐ ์์ฃผ ์ฐ์ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์นด์ดํ
์ ๋ ฌ์ ์ฝ๋๋ก ํ๋ํ๋ ๋ฏ์ด์ ๋ณด์. ๋จผ์ , ๋ฐฐ์ด์ ์ธ๊ฐ์ง๋ฅผ ์ ์ธ ํด์ค๋ค. int[] array = new int[100]; //์์ด์ ์์ : 100๊ฐ int[] cou..
'๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ' ์นดํ
๊ณ ๋ฆฌ์ ๊ธ ๋ชฉ๋ก (2 Page)
๋จ์ถํค
๋ด ๋ธ๋ก๊ทธ
๋ด ๋ธ๋ก๊ทธ - ๊ด๋ฆฌ์ ํ ์ ํ |
Q
Q
|
์ ๊ธ ์ฐ๊ธฐ |
W
W
|
๋ธ๋ก๊ทธ ๊ฒ์๊ธ
๊ธ ์์ (๊ถํ ์๋ ๊ฒฝ์ฐ) |
E
E
|
๋๊ธ ์์ญ์ผ๋ก ์ด๋ |
C
C
|
๋ชจ๋ ์์ญ
์ด ํ์ด์ง์ URL ๋ณต์ฌ |
S
S
|
๋งจ ์๋ก ์ด๋ |
T
T
|
ํฐ์คํ ๋ฆฌ ํ ์ด๋ |
H
H
|
๋จ์ถํค ์๋ด |
Shift + /
โง + /
|
* ๋จ์ถํค๋ ํ๊ธ/์๋ฌธ ๋์๋ฌธ์๋ก ์ด์ฉ ๊ฐ๋ฅํ๋ฉฐ, ํฐ์คํ ๋ฆฌ ๊ธฐ๋ณธ ๋๋ฉ์ธ์์๋ง ๋์ํฉ๋๋ค.