๐ Purpose : Ready for coding test ๐ฅ
๐ Goal : I try to solve the algorithm one per day
๐ date : 2020.02.07 ~ ing
- ๊ตฌํ ๊ทธ ์์ฒด์ ๋ฌธ์ ์ด๋ค.
- ๋ฌธ์ ์์ ์๊ตฌํ๋ ์กฐ๊ฑด์ ์ถฉ์กฑํ๊ณ ๋ฌธ์ ์์ ํ๋ผ๋ ๋๋ก ๊ตฌํํ๋ ๊ตฌํ ๊ทธ ์์ฒด!
| Number | level | date | Solved | etc |
|---|---|---|---|---|
| 14503 | G5 | 201130 | โญ | |
| 2659 | S4 | 201201 | โญ | |
| 1337 | S4 | 201204 | โญ | |
| 1173 | B2 | 201209 | โญ | |
| 10951 | B3 | 201226 | โญ | EOF๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์ง ํ์ ํ๋ ๋ฌธ์ |
| 10818 | B3 | 201226 | โญ | ์ต๋,์ต์๊ฐ ๊ตฌํ๋ ๋ฌธ์ |
| 8958 | B2 | 201226 | โญ | OX ์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ |
- Brute + Force ๋ก ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ณ ๋ คํ๊ณ ๋ค ํด๋ณด๋ ๋ฐฉ๋ฒ์ด๋ค.
- ์ด๋ป๊ฒ ๋ณด๋ฉด ๋ฌด์ฒ ์ฌ์ด๋ฌธ์ ๊ฐ ๋ ์๋ ์์ง๋ง ๊ตฌํ๊ณผ ์์ธ๊ฐ ๋ง์ด ๋ํ๋๋ ๋ฌธ์ ๋ผ๋ฉด ์ด๋ ค์ธ ์๋ ์๋ ์๊ณ ๋ฆฌ์ฆ
- ์์ ํ์์ ์ผ์ข ์ด๋ค.
| Number | level | date | Solved | etc |
|---|---|---|---|---|
| 1436 | S5 | 201130 | โญ | |
| 1107 | G5 | 201202 | โญ |
- ๋๋น์ฐ์ ํ์
- Queue๋ฅผ ํ์ฉํด์ ๋ฌธ์ ํด๊ฒฐ
| Number | level | date | Solved | etc |
|---|---|---|---|---|
| 11559 | G5 | 201201 | โญ | |
| 2660 | G5 | 201201 | โญ |
- ๊น์ด์ฐ์ ํ์
| Number | level | date | Solved | etc |
|---|---|---|---|---|
| 13023 | G5 | 201214 | โญ | |
| 3109 | G2 | 201215 | โ |
| Number | level | date | Solved | etc |
|---|
- ์ฌ๊ทํจ์๋ก, ์๊ธฐ์์ ์ ํธ์ถํ์ฌ ๊ฐ์ ๋์ถํ๋ ๋ฐฉ๋ฒ์ด๋ค.
- ์ข ๋ฃ์กฐ๊ฑด์ ๊ผญ ์ค์ ํด์ผํ๋ฉฐ StackOverFlow๋ฅผ ์กฐ์ฌํด์ผํ๋ค.
| Number | level | date | Solved | etc |
|---|---|---|---|---|
| 15650 | S3 | 201203 | โญ |
| Number | level | date | Solved | etc |
|---|
| Number | level | date | Solved | etc |
|---|
| Number | level | date | Solved | etc |
|---|---|---|---|---|
| 2437 | G3 | 201223 | โ | ํด์ค๋ดค์ |
| 1339 | G4 | 201223 | โญ |
- Dynamic Programming์ ์ฝ์๋ก DP๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ์ ํ์์ ์ฐพ๋ ๋ฌธ์ ๋ก ๋ฌธ์ ๋ฅผ ๋ดค์ ๋ DP๋ผ๊ณ ๊ฐ์ ์ก๊ธฐ๋ ์ด๋ ค์ธ ๋ฟ๋๋ฌ, ๊ทธ ๊ท์น์ ๋ด์ ๋ด๊ณ ์๋ ์์ ๋์ถํ๊ธฐ๊น์ง ์๊ฐ์ด ๊ฝค ๊ฑธ๋ฆฌ๋ ๋ฌธ์ ๋ค.
- ๋ฌธ์ ๋ฅผ ํธ๋ ๊ณผ์ ์์ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฌ์ง๋ง, ๊ตฌํ์ ์๋์ ์ผ๋ก ์ฝ๋ค.
- memorization๊ธฐ๋ฒ์ผ๋ก ๋ฐฐ์ด์ ์ ์ฅํ๋ฉด์ ๊ฐ๋ค์ ์ ์ฅํ๋ ๋ฐฉ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์ด๋๊ฐ๋ค.
- ๋ฌธ์ ๋ฅผ ํ๋ฉด ํ์๋ก ๋ด๊ฐ ๊ณผ์ฐ ์ด ์ ํ์ ์๊ณ ์๋๊ฑด๊ฐ ์๋ฌธ์ด ๋ ๋ค.
- dp๋ฅผ ํ๋ฉด์ ๋ฐํ์์ด ๋์ง ์๋์ง ํญ์ ์ ๊ฒฝ์จ์ผ ํ๋ค. ( ์์ฆ ๋ฌธ์ ๋ฅผ ํ๋ค๊ฐ ๋ฐํ์์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ค. )
- ๋ฐํ์์ด ๋์ง ์๊ฒ ํ๋ ค๋ฉด, dp๋ฅผ ํฌ๊ธฐ๋ฅผ ์ ๋ ฅ๊ฐ์ผ๋ก ํ์ง๋ง๊ณ ๋ฌธ์ ์์ ์ ์ํ ์ต๋ size๋ก ๋ง๋ค์ด์ฃผ์!
- ex) dp[1] =1, dp[2] = 1 ์ด ์๋ ๊ฒฝ์ฐ, n=1๋ก ์ ๋ ฅ์ด ๋ค์ด์จ๋ค๋ฉด dp[1], dp[2] ์ ์ ๊ทผํ์ง ๋ชปํด์ ๋ฐํ์์๋ฌ๊ฐ ๋๋ค.
- dp์์ ๋ค์ด๊ฐ๋ ๊ฐ์ด int๊ฐ์ธ์ง long ์ธ์ง ํ์ธ ํด์ผํ๋ค.
- ์ต๋๋ก ๋ค์ด๊ฐ ์ ์๋ ๊ฐ์ผ๋ก ํ ์คํธ ํด๋ณธ ํ ์ํ๋ ๊ฐ์ ์ถ๋ ฅํ๋ ์ง ํ์ธํ์.
- ์ ๋ฐ ๊ผญ ํ์ธํ์! ( ์ด ๋ถ๋ถ์์ ๋๋ฌด ๋ง์ด ํ๋ฆฐ๋คใ ใ )
| Number | level | date | Solved | etc |
|---|---|---|---|---|
| 2579 | S3 | 201203 | โ | |
| 9461 | S3 | 201203 | โ | |
| 1890 | S2 | 201208 | โญ | |
| 10844 | S1 | 201221 | โ |
| Number | level | date | Solved | etc |
|---|
Parametric Search Problem Link
| Number | level | date | Solved | etc |
|---|
- FILO(First In Last Out)
- ๋ฌธ์ ๋ฅผ ํ๋ค๋ณด๋ฉด ์ด๋ค ๊ฒ์ ๋ํ ์ง์ ๋ง์ถ๋ ๋ฌธ์ ( ex. ๊ดํธ์ ์ง์ด ์๋ง๊ฒ ๋ง์ถฐ์ ธ์๋์ง ) ๋ฑ stack์ ํน์ฑ์ ์ฌ์ฉํ๋ ๋ฌธ์ ๋ค์ ์ฃผ๋ก ์ฐ์ธ๋ค.
| ๋ฌธ์ ๋ฒํธ | level | date | Solved | etc |
|---|---|---|---|---|
| 4949 | S4 | 201130 | โญ |
- ์ ์ ์ ์ถ ( Fist-In-First-Out)
- ๋จ๋ ์ผ๋ก queue๋ง ๊ตฌํํด์ ๋ฌธ์ ๋ฅผ ํธ๋ ๋ฐฉ์์ ๊ฑฐ์ ๋์ค์ง ์๊ณ BFS, ๊ทธ๋ฆฌ๋ ๋ฑ ์ฌ๋ฌ ์๊ณ ๋ฆฌ์ฆ๊ณผ ์์ฌ์ ๋์จ๋ค.
| ๋ฌธ์ ๋ฒํธ | level | date | Solved | etc |
|---|---|---|---|---|
| 19366 | S3 | 201127 | โญ |
- ์ฐ์ ์์ ํ๋ผ๊ณ ํ๋ฉฐ ํ์ด๋ผ๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ค.
- ํ์ ํํ๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง, ์ฐ์ ์์์ ๋ง์ถฐ ์๋์ผ๋ก? ์์๊ฐ ๋งค๊ฒจ์ ธ์ ์ ์ฅ๋์ด์ง๋ ๊ณต๊ฐ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
- ํ์๋ ์ต๋ํ, ์ต์ํ์ด ์กด์ฌํ๋๋ฐ, ์ผ๋ฐ์ ์ธ PQ๋ฅผ ๊ตฌํํ๋ค๋ฉด, ์ต์ํ์ด ๊ตฌํ๋๊ณ reverseOrder์ ํด์ฃผ๋ฉด ์ต๋ํ์ ๊ตฌํํ ์ ์๋ค.
- ์ฐ์ ์์ ํ๋ ํผ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์กด์ฌํ๊ธด ํ์ง๋ง, ๊ทธ๋ํ ๋ฌธ์ ๋ฅผ ํ ๋ ๊ฐ๋ ์ฌ์ฉ๋์๋ ๊ฒ์ผ๋ก ๊ธฐ์ตํ๋ค.
- ์ต์ํ๊ณผ ์ต๋ํ์ ๊ฐ์ด ์ฌ์ฉํด์ ํธ๋ ๋ฌธ์ ๋ ์กด์ฌํ๋ค.
| ๋ฌธ์ ๋ฒํธ | level | date | Solved | etc |
|---|---|---|---|---|
| 1655 | G2 | 201202 | โญ |
- Dijkstra Algorithm is All pairs shortest path problem.
- It is an algorithm for finding the shortest paths between nodes in a graph
- If you want to use Dijkstra Algorithm, you have to know the start, end node.
- If you are implemented the Dijkstra Algorithm, you need to use 1-dimensional array and initial Big value.
- ์ด๊ฒ์ DP์ ์ข ๋ฅ๋ผ๊ณ ํ๋ค. ( ๊ทธ ์ด์ ๋, ์ฌ์ฉํ dist์ ๊ฑฐ๋ฆฌ๋ฅผ )
- Priority Queue ์ฌ์ฉ
- Visited ๋ฐฐ์ด ( ๋ฐฉ๋ฌธํ ๋ ธ๋๋ฅผ ๊ผญ ๋ค์ ๋ฐฉ๋ฌธํ์ง ์๋๋ก ์ฒ๋ฆฌํด์ฃผ์ด์ผ ํ๋ค. )
| ๋ฌธ์ ๋ฒํธ | level | date | Solved | etc |
|---|---|---|---|---|
| 1753 | G5 | 201205 | โญ | |
| 1504 | G4 | 201207 | โญ | |
| 1916 | G5 | 201209 | โญ |
| ๋ฌธ์ ๋ฒํธ | level | date | Solved | etc |
|---|---|---|---|---|
| 1613 | G3 | 201124 | โญ |
| ๋ฌธ์ ๋ฒํธ | level | date | Solved | etc |
|---|---|---|---|---|
- This Algorithm is sorting directional graph's node.
- You may count the node that visited
- DAG(directed acyclic graph) -> directed and acyclic (์ฌ์ดํด์ด ์๋ค.)
- ๊ทธ๋ํ์์ ๋ฐ๋์ ์์ ๋ณด๋ค ์ ํ๋์ด์ผ ํ ์ผ์ ๋ค ๋๋ด์ผ๋ง ์์ ์ ๋ค์ด๊ฐ ์ ์๋(๋ฐฉ๋ฌธํ ์ ์๋) ์กฐ๊ฑด์ด ์ฃผ์ด์ง ๋
- ์ ํ๊ด๊ณ๊ฐ ๋ถ๋ช ํ๋ค๋ฉด ์์์ ๋ ฌ์ ์ฌ์ฉํด์ผํ๋ค.
- There can be multiple results of this algorithm. ( Queue's size is over 1)
| ๋ฌธ์ ๋ฒํธ | level | date | Solved | etc |
|---|---|---|---|---|
| 1005 | G3 | 201124 | โญ | |
| 1516 | G3 | 201123 | โญ | |
| 2623 | G2 | 201123 | โญ |
| ๋ฌธ์ ๋ฒํธ | level | date | Solved | etc |
|---|---|---|---|---|
| 1717 | G4 | 201126 | โญ |
- ๋ฌด๋ฐฉํฅ, ๋ฐฉํฅ์ด ์๋ ํธ๋ฆฌ๊ฐ ์๋ค.
- ๋ฌด๋ฐฉํฅ์ธ ๊ฒฝ์ฐ, ๊ฐ์ *2 = ์ ์ -1
- ๋ฐฉํฅ์ด ์๋ ํธ๋ฆฌ์ธ ๊ฒฝ์ฐ, ๊ฐ์ ์ ์ = ์ ์ -1
- ํธ๋ฆฌ์๋ ์ํ, ์ฌ์ดํด์ด ์กด์ฌํ๋ฉด ์๋๋ค. ( ์ ํ์ฌ์ดํด๋ ์๋จ. )
| ๋ฌธ์ ๋ฒํธ | level | date | Solved | etc |
|---|---|---|---|---|
| 4256 | G5 | 201205 | โญ | |
| 4803 | G4 | 201206 | โ |
- ํธ๋ฆฌ์ ๊ฐ์ ์ ๊ฐ์ค์น(cost)๊ฐ ์์ ๋, ๊ฐ์ ์ ๊ฐ์ค์น ํฉ์ด ์ต์์ธ ์คํจ๋ ํธ๋ฆฌ
| ๋ฌธ์ ๋ฒํธ | level | date | Solved | etc |
|---|
- ๊ตฌ๊ฐ์ ๋ณด์กดํ๊ณ ์๋ ํธ๋ฆฌ
- ์ฌ๊ท๋ฅผ ํ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํ ์ ์๋ค.
| ๋ฌธ์ ๋ฒํธ | level | date | Solved | etc |
|---|---|---|---|---|
| 2042 | G1 | 201203 | โญ |