algorithm-study
Development environment
- Programming Language
- Java
- IDE
- IntelliJ
- Algorithm Site
- Baekjoon Online Judge: https://www.acmicpc.net/
Study Rule
- Github๋ฅผ ํตํ ์ฝ๋ ๊ณต์ ๋ฐ ํผ๋๋ฐฑ
- Feature Branch Workflow ๋ฐฉ์์ ์ด์ฉํ๋ค
- ๊ฐ์ธ์ด ํ ์ผ
- ์ด๋ก ์ ๋ฆฌ
- ๊ฐ์๊ฐ ํด๋น ๋ฒ์์ ๋ํ ์๊ณ ๋ฆฌ์ฆ ์ด๋ก ๋ด์ฉ์ ๊ฐ๋จํ ์ ๋ฆฌํ๋ค.
- ๋ฌธ์ ํ์ด
- ๊ฐ์๊ฐ ํด๋น ๋ฒ์์ ๋ํ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํผ๋ค.
- ๋ฌธ์ ๋ฅผ ํ ๋ ๋ฐ์ํ [issue] ๋ฅผ ๋จ๊ธด ํ Readme์ ๊ธฐ๋กํ๋ค.
- issue: ์ถ๊ฐ๋ก ๊ณต๋ถํ๊ณ ์ถ์ ๊ฐ๋ , ์ด๋ ค์ ๋ ๋ถ๋ถ, ์ค๋ฅ๊ฐ ๋ ๋ถ๋ถ ๋ฑ
- ํด๋นํ๋ ๋ฌธ์ ์ ๋ํ ๋งํฌ๋ ์ฒจ๋ถํ๋ค.
- ๊ฐ์๊ฐ ํด๋น ์ฝ๋์ ์ข์ ์์ ๋ฅผ ์ฐพ์์ ๋ถ์ํ๋ค.
- ๊ณต์ ๋ฐ ํผ๋๋ฐฑ
- ๊ฐ์๊ฐ ํผ ๋ฌธ์ ์ ๋ํ ์ฝ๋๋ฅผ feature branch๋ฅผ ๋ฐ์ github์ pushํ ํ pull request๋ฅผ ๋ ๋ฆฐ๋ค.
- ์๋๋ฐฉ์ ์ฝ๋๋ฅผ ํ์ธํ ํ [review] ๋ฅผ ํตํด ํผ๋๋ฐฑ์ ์ ๋๋ค.
- ํผ๋๋ฐฑ์ ์ ์ ํ ํด๋นํ๋ feature branch๋ฅผ GUI(Github page)๋ฅผ ์ด์ฉํ์ฌ mergeํ๋ค.
- ํ๊ณ
- ์์ ์ ์ฝ๋์ ๋ํ ํผ๋๋ฐฑ( [review] )์ ํ์ธํ๋ค.
- ์๋ก ์ ๋ฐ์ดํธ๋ ์ฝ๋๋ฅผ pull๋ฐ๋๋ค.
- ์ข์ ํ์ด๋ฒ + ํผ๋๋ฐฑ์ ์ด์ฉํ์ฌ ์์ ์ ์ฝ๋๋ฅผ ์ฌ์ ๊ฒํ๋ค.
- ๊ด๋ จ๋ ์๊ณ ๋ฆฌ์ฆ ํ์ด๋ฒ์ ๋ํด ๋ณต์ตํ๋ค.
- ์์ ์ ์ฝ๋๋ฅผ ์์ ํ์ฌ ๋ค์ pushํ๋ค.
- ์ด๋ก ์ ๋ฆฌ
- ์คํฐ๋ ๋ชจ์์์ ํ ์ผ
- ์ด๋ก ์ ๋ฆฌ ๊ณต์
- ๋ฌธ์ ํ์ด ํผ๋๋ฐฑ ํ์ธ
- ๋ฌธ์ ๋ฅผ ํ ๋ ๋ฐ์ํ [issue] ์ ๋ํด ๋ ผ์ํ์ฌ Readme์ ์ ๋ฆฌํ๋ค.
- ์ข์ ์ฝ๋์ ๋ํ ๋ถ์ ๊ณต์
์ ๋ ฌ
โ๏ธ issue ์ ๋ฆฌ ๋ด์ฉ
- [#issue1] Comparable, Comparator ์ ์ด์ฉํ Java ๊ฐ์ฒด ์ ๋ ฌ
- [#issue1-1] Comparable, Comparator ์ฌ์ฉ ์์
- [#issue2] Java ์ธ์ด๋ฅผ ์ด์ฉํ์ฌ ์ ๋ ฌํ ๋ ์๊ฐ์ด๊ณผ ๋ฌธ์
- [#issue3] List์ ArrayList์ ์ฐจ์ด
- [#issue3-1] ์ ์บ์คํ , ๋ค์ด์บ์คํ ์ด๋
- [#issue4] Arrays.sort()์ Collections.sort()์ ์ฐจ์ด
- [#issue5] BufferedReader/BufferedWriter, InputStreamReader/OutputStreamWriter์ ์ฐจ์ด
- [#issue6] String, StringBuilder, StringBuffer์ ์ฐจ์ด
- [#issue7] counting sort(๊ณ์์ ๋ ฌ)์ ๊ฐ๋ ๋ฐ ์๊ฐ๋ณต์ก๋
- [#issue8] Java Collections Framework
- [#issue8-1] java Map ์ธํฐํ์ด์ค ๊ตฌํ์ฒด์ ์ข ๋ฅ
- [#issue8-2] java Set ์ธํฐํ์ด์ค ๊ตฌํ์ฒด์ ์ข ๋ฅ
- [#issue8-3] java List ์ธํฐํ์ด์ค ๊ตฌํ์ฒด์ ์ข ๋ฅ
- [#issue9] java ์๋ฃํ์ ๋ฒ์ (ex. Integer, Long, BigInteger, BigDecimal)
- [#issue9-1] ์ ๋ ฅ๊ฐ ์กฐ๊ฑด์ ๋ฐ๋ฅธ java ์๋ฃํ ์ ํ ๋ฐฉ๋ฒ
- [#issue10] ๋ฌธ์์ด ๋ถ๋ฆฌ๋ฅผ ์ํ StringTokenizer์ String.spilt์ ์ฐจ์ด
- [#issue10-1] ๋ฌธ์์ด ๋ถ๋ฆฌ๋ฅผ ์ํ StringTokenizer์ String.spilt์ ์ฌ์ฉ ์์
- [#issue11] BufferedReader/Scanner, Arrays.sort()/Collections.sort()์ ๋ฐ๋ฅธ ์๊ฐ๋ณต์ก๋ ๋ถ์
์ํ1-1(๋๋จธ์ง, ์ต๋๊ณต์ฝ์, ์ต์๊ณต๋ฐฐ์, GCD์ ํฉ, ์ง๋ฒ)
โ๏ธ issue ์ ๋ฆฌ ๋ด์ฉ
- [#issue1] ์ต๋๊ณต์ฝ์(GCD)๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ '์ ํด๋ฆฌ๋ ํธ์ ๋ฒ'์ ๊ฐ๋
- [#issue1-1] ์ต๋๊ณต์ฝ์๋ฅผ ์ด์ฉํ์ฌ ์ต์๊ณต๋ฐฐ์(LCM)๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ
- [#issue2] ๊ธฐ๋ณธ์ ์ธ ์์คํค์ฝ๋
- [#issue3] 10์ง์ <-> 2์ง์, 8์ง์, 16์ง์ ๋ณํ ์ Integer API ์ฌ์ฉ
์ํ1-2(์์, ์์ธ์๋ถํด, ํฉํ ๋ฆฌ์ผ)
โ๏ธ issue ์ ๋ฆฌ ๋ด์ฉ
- [#issue1] 1~N ๊น์ง์ ์์์ ๋ชจ๋ ์์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ '์๋ผํ ์คํ ๋ค์ค์ ์ฒด'์ ๊ฐ๋
- [#issue2] ์์ธ์๋ถํด์ ๊ฐ๋ ๊ณผ ๊ฐ๋จํ ํ์ด๋ฒ
์ํ2-1(์ ๊ณฑ, ํ๋ ฌ, ํผ๋ณด๋์น์ ์, ์ดํญ๊ณ์, ํ์ค์นผ์ ์ผ๊ฐํ)
โ๏ธ issue ์ ๋ฆฌ ๋ด์ฉ
- [#issue1] ๋ถํ ์ ๋ณต์ ์ด์ฉํ์ฌ ์ ๊ณฑ์ ๊ตฌํ๋ ๋ฐฉ๋ฒ
- [#issue2] ์ด์ง์์ ์๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ์ ๊ณฑ์ ๊ตฌํ๋ ๋ฐฉ๋ฒ
- [#issue3] ํ๋ ฌ์ ๊ณฑ ๊ตฌํ๊ธฐ
- [#issue4] ํผ์ฌ๋ ธ ์ฃผ๊ธฐ์ ๊ฐ๋ ๊ณผ ๊ตฌํ๋ ๋ฐฉ๋ฒ
- [#issue5] ์์ ๋ฒ์งธ์ ํผ๋ณด๋์น์ ์์ ๋ํ ๊ท์น์ฑ
- [#issue6] ์ดํญ๊ณ์ ๊ตฌํ๋ ๋ฐฉ๋ฒ
์ํ2-2(์นดํ๋ ์, ์ค์ผ๋ฌ ํผ ํจ์, ์ ํด๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ, ๋๋จธ์ง ์ฐ์ฐ, ์์ด)
โ๏ธ issue ์ ๋ฆฌ ๋ด์ฉ
- [#issue1] ์นดํ๋ ์์ ๊ฐ๋ ๊ณผ ์ ์ฉ ์ฌ๋ก
- [#issue1-1] ์นดํ๋ ์ ๊ตฌํ๋ ๋ฐฉ๋ฒ
- [#issue2] ์ค์ผ๋ฌ ํผ ํจ์์ ๊ฐ๋ ๊ณผ ํ์ฉ
- [#issue2-1] ์ค์ผ๋ฌ ํผ ํจ์ ๊ตฌํ๋ ๋ฐฉ๋ฒ
- [#issue3] ์ฌ์ ์์ผ๋ก ๋ค์์ ์ค๋ ์์ด
์๋ฃ๊ตฌ์กฐ1(์คํ, ํ, ๋ฑ, ๋ฌธ์์ด)
โ๏ธ issue ์ ๋ฆฌ ๋ด์ฉ
- [#issue1] ์คํ(Stack)์ ๊ฐ๋
- [#issue1-1] ์คํ(Stack) ๊ด๋ จ ๋ฉ์๋
- [#issue2] ํ(Queue)์ ๊ฐ๋
- [#issue2-1] ํ(Queue) ๊ด๋ จ ๋ฉ์๋
- [#issue3] ๋ฑ(Deque, Double-ended Queue)์ ๊ฐ๋
- [#issue3-1] ๋ฑ(Deque, Double-ended Queue) ๊ด๋ จ ๋ฉ์๋
- [#issue4] String indexOf()์ ์ฌ์ฉ๋ฒ
- [#issue5] String substring()์ ์ฌ์ฉ๋ฒ
์๋ฃ๊ตฌ์กฐ2(์คํ, Disjoint-set, ๋นํธ๋ง์คํฌ, ํ, ์ด์ง ํ์ ํธ๋ฆฌ)
โ๏ธ issue ์ ๋ฆฌ ๋ด์ฉ
- [#issue1] Disjoint-set(์๋ก์ ์งํฉ ์๋ฃ๊ตฌ์กฐ)์ ๊ฐ๋ ๊ณผ ์ฌ์ฉ ์์
- [#issue1-1] Disjoint-set ๊ตฌํ ๋ฐฉ๋ฒ
- [#issue2] ๋นํธ๋ง์คํฌ์ ๊ฐ๋ ๊ณผ ์ฌ์ฉ ์ด์
- [#issue2-1] ๋นํธ์ฐ์ฐ์ ์ข ๋ฅ์ ์ฌ์ฉ๋ฒ
- [#issue3] ์ด์ง ํธ๋ฆฌ์ ๊ฐ๋ ๊ณผ ์ข ๋ฅ
- [#issue3-1] ์ด์ง ํธ๋ฆฌ์ ๊ด๋ จ๋ ์ฉ์ด๋ค
- [#issue4] ์ต๋ํ์ ์ฝ์ ๊ณผ ์ญ์
- [#issue5] ์ด์ง ํ์ ํธ๋ฆฌ์ ๊ฐ๋
ํธ๋ฆฌ์ ์ด์ง ํ์
โ๏ธ issue ์ ๋ฆฌ ๋ด์ฉ
- [#issue1] ํธ๋ฆฌ์ ๊ฐ๋ ๊ณผ ์ ์ฉ ์ฌ๋ก
- [#issue1-1] ํธ๋ฆฌ์ ์ง๋ฆ ๊ฐ๋ ๊ณผ ๊ตฌํ๋ ๋ฐฉ๋ฒ
- [#issue1-2] ํธ๋ฆฌ์ ๊ทธ๋ํ์ ์ฐจ์ด์
- [#issue1-3] ์ด์ง ํธ๋ฆฌ์ ์ํ(์ ์, ์ค์, ํ์ ์ํ)
- [#issue2] ์ด์ง ํ์์ ๊ฐ๋
๊ทธ๋ํ1(๊ทธ๋ํ, DFS, BFS, ์ด๋ถ๊ทธ๋ํ, ์ฌ์ดํด, ํ๋ฌ๋ ํ)
โ๏ธ issue ์ ๋ฆฌ ๋ด์ฉ
- [#issue1] ๊ทธ๋ํ์ ๊ฐ๋ ๊ณผ ์ ์ฉ ์ฌ๋ก
- [#issue2] ํธ๋ฆฌ๋ ๊ทธ๋ํ๋ฅผ ๋ฐฉ๋ฌธ ๋๋ ํ์ํ๋ ๋ฐฉ๋ฒ 1: BFS(๋๋น ์ฐ์ ํ์)
- [#issue3] ํธ๋ฆฌ๋ ๊ทธ๋ํ๋ฅผ ๋ฐฉ๋ฌธ ๋๋ ํ์ํ๋ ๋ฐฉ๋ฒ 2: DFS(๊น์ด ์ฐ์ ํ์)
- [#issue4] ์ด๋ถ ๊ทธ๋ํ์ ๊ฐ๋
- [#issue4-1] ์ด๋ถ ๊ทธ๋ํ์ธ์ง ํ์ธํ๋ ๋ฐฉ๋ฒ
- [#issue5] ์ฌ์ดํด์ ๊ฐ๋
- [#issue6] ํ๋ฌ๋ ํ(Flood Fill) ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋
๊ทธ๋ํ2(DAG(Directed Acyclic Graph), ์์ ์ ๋ ฌ, ์ต์ ๋น์ฉ ์ ์ฅ ํธ๋ฆฌ(Minimum Spanning Tree), Prim, Kruskal, ์ต๋จ ๊ฒฝ๋ก(Shortest Path), Bellman-Ford)
โ๏ธ issue ์ ๋ฆฌ ๋ด์ฉ
- [#issue1] DAG(Directed Acyclic Graph)์ ๊ฐ๋
- [#issue2] ์์ ์ ๋ ฌ(Topological Sort)
- [#issue3] ์ต์ ๋น์ฉ ์ ์ฅ ํธ๋ฆฌ(MST, Minimum Spanning Tree)
- [#issue3-1] Prim MST ์๊ณ ๋ฆฌ์ฆ
- [#issue3-2] Kruskal MST ์๊ณ ๋ฆฌ์ฆ
- [#issue4] ์ต๋จ ๊ฒฝ๋ก(Shortest Path)
- [#issue4-1] Bellman-Ford ์๊ณ ๋ฆฌ์ฆ
๊ทธ๋ํ2(๋ค์ต์คํธ๋ผ(Dijkstra), ํ๋ก์ด๋(Floyd-Warshall), SPFA(Shortest Path Faster))
โ๏ธ issue ์ ๋ฆฌ ๋ด์ฉ
- [#issue1]
์ผ์ฑ SW ์ญ๋ ํ ์คํธ
โ๏ธ ๊ธฐ์ถ ๋ฌธ์ ์ ๋ฆฌ ๋ด์ฉ