- ๋ฐฑ์ค
- ํ๋ก๊ทธ๋๋จธ์ค
- DFS
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- ๋นํธ๋ง์คํน
- DP
- ๋ค์ต์คํธ๋ผ
- C++
- ํ๋ฆฌ์จ๋ณด๋ฉ
- BFS
- ์์ฝ๋
- golang
- Union-Find
- go
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- ํธ๋ฆฌ
- js
- ์นด์นด์ค ์ฝํ
- ์ด๋ถํ์
- nestjs
- ์น๋ฆฐ์ด
- Python
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- ์นด์นด์ค2021
- ์ํฐ๋
- ์ฌ๊ท
- LCs
- ์๊ณ ๋ฆฌ์ฆ
- ๋นํธ๋งต
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- Today
- Total
๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (122)
Hello Ocean! ๐ผ
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qvNC1/btq1qOeophR/8eHJLX0ch8Wyx5WZXFiqpk/img.png)
๋ฌธ์ programmers.co.kr/learn/courses/30/lessons/42897 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๋๋์ง ๋๋์ด ์ด๋ ๋ง์์ ํธ ๊ณํ์ ํ๊ณ ์์ต๋๋ค. ์ด ๋ง์์ ๋ชจ๋ ์ง๋ค์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋๊ทธ๋๊ฒ ๋ฐฐ์น๋์ด ์์ต๋๋ค. ๊ฐ ์ง๋ค์ ์๋ก ์ธ์ ํ ์ง๋ค๊ณผ ๋ฐฉ๋ฒ์ฅ์น๊ฐ ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ธ์ ํ programmers.co.kr ๋๋์ด ์ด๋ ๋ง์์ ํธ ๊ณํ์ ํ๊ณ ์์ต๋๋ค. ์ด ๋ง์์ ๋ชจ๋ ์ง๋ค์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋๊ทธ๋๊ฒ ๋ฐฐ์น๋์ด ์์ต๋๋ค. ๊ฐ ์ง๋ค์ ์๋ก ์ธ์ ํ ์ง๋ค๊ณผ ๋ฐฉ๋ฒ์ฅ์น๊ฐ ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ธ์ ํ ๋ ์ง์ ํธ๋ฉด ๊ฒฝ๋ณด๊ฐ ์ธ๋ฆฝ๋๋ค. ๊ฐ ์ง์ ์๋ ๋์ด ๋ด๊ธด ๋ฐฐ์ด money๊ฐ ์ฃผ์ด์ง ๋, ๋๋์ด ํ์น ์ ์๋ ๋์ ์ต๋๊ฐ์ ๊ตฌํด๋ณด์! ์ ํ์ฌํญ ์ด ๋ง์์ ์๋ ์ง์ 3๊ฐ ์ด์ 1,000,0..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/YbPYE/btq0VpL8Osk/dXuWoI34XxJhBYEAseuxL1/img.png)
๋ฌธ์ www.acmicpc.net/problem/1005 1005๋ฒ: ACM Craft ์ฒซ์งธ ์ค์๋ ํ ์คํธ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ๋ค์๊ณผ ๊ฐ์ด ์ฃผ์ด์ง๋ค. ์ฒซ์งธ ์ค์ ๊ฑด๋ฌผ์ ๊ฐ์ N ๊ณผ ๊ฑด๋ฌผ๊ฐ์ ๊ฑด์ค์์๊ท์น์ ์ด ๊ฐ์ K์ด ์ฃผ์ด์ง๋ค. (๊ฑด๋ฌผ์ ๋ฒํธ๋ 1๋ฒ๋ถ www.acmicpc.net ํ์ด DP๋ก ํ๋ฉด ๋๋ค! cache[i]: i๋ฅผ ์ง๋๋ฐ ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ i๋ฅผ ์ง๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ฐพ๋ ํจ์์์, 1) cache๊ฐ์ด ์์ผ๋ฉด ๋ฐ๋ก return 2) ์์ผ๋ฉด, ์๋ก ๊ตฌํด์ cache์ ์ฑ์๋ฃ๊ณ return ํ๋ค i๋ฅผ ์ง๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ = i ๊ฑด์ค ์๊ฐ + max( i์ ์ ์ง์ด์ผ ํ๋ ๊ฑด๋ฌผ๋ค์ ๊ฑด์ค ์๊ฐ ) ์ฝ๋ #include #include #include using namespa..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Oklen/btq0SGU5qdW/9fNW2gYGNfzchrcuJNqxN0/img.png)
๋ฌธ์ www.acmicpc.net/problem/2225 2225๋ฒ: ํฉ๋ถํด ์ฒซ์งธ ์ค์ ๋ต์ 1,000,000,000์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ค. www.acmicpc.net ์ ์์ฌํญ 1+2 ์ 2+1์ ๋ค๋ฅธ ๊ฒฝ์ฐ๋ก ์ผ๋ค๋ ๊ฒ. 0๋ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ. ๊ฒฝ์ฐ์ ์๋ฅผ 1000000000์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํด์ผํ๋ค๋ ๊ฒ ํ์ด ์ด ๋ฌธ์ ๋ DP(๋์ ๊ณํ๋ฒ)์ ์ด์ฉํ๋ฉด ํ ์ ์๋ค! 2์ฐจ์ ์บ์๋ฐฐ์ด์ ์ด์ฉํ ๋ฉ๋ชจ์ด์ ์ด์ ์ ์ ์ฉํด์ผ ํ๋ค. cache[k][n] : k๊ฐ์ ์ซ์๋ฅผ ๋ํด์ n์ ๋ง๋ค ์ ์๋ ๊ฒฝ์ฐ์ ์ ๊ทธ๋ฆฌ๊ณ cache[k][n]์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํ ์ ์๋ค. (์ ํ์) cache[k][n] = cache[k-1][0] + cache[k-1][1] + cacke[k-1][2] + ... + c..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cHdDj9/btqZ2bu0skB/1FCCCTxdqPT64oZ4gD6OPk/img.png)
๋ฌธ์ www.acmicpc.net/problem/12865 12865๋ฒ: ํ๋ฒํ ๋ฐฐ๋ญ ์ฒซ ์ค์ ๋ฌผํ์ ์ N(1 ≤ N ≤ 100)๊ณผ ์ค์๊ฐ ๋ฒํธ ์ ์๋ ๋ฌด๊ฒ K(1 ≤ K ≤ 100,000)๊ฐ ์ฃผ์ด์ง๋ค. ๋ ๋ฒ์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฑฐ์ณ ๊ฐ ๋ฌผ๊ฑด์ ๋ฌด๊ฒ W(1 ≤ W ≤ 100,000)์ ํด๋น ๋ฌผ๊ฑด์ ๊ฐ์น V(0 ≤ V ≤ 1,000) www.acmicpc.net ํ์ด ์ฒ์์๋, DP๋ฅผ ์ด๋ป๊ฒ ์ด์ฉํด์ผํ ์ง ๋ ์ค๋ฅด์ง ์์์ ์ผ๋จ ์์ ํ์์ผ๋ก ๊ตฌํํด๋ณด์๋ค. ๊ฒฐ๊ณผ๋ ๋๋ฌด ๋น์ฐํ๊ฒ๋ ์๊ฐ์ด๊ณผ์๋ค! ์์ ํ์์ผ๋ก ๊ตฌํํ๊ณ ๋๋ฉด, DP์ ๋ํ ๊ฐ์ด ์ฌ๊ฑฐ๋ผ๊ณ ์๊ฐํ๋๋ฐ ์ ํ ์ค์ง ์์๋ค. ๊ฒฐ๊ตญ ๊ฒ์์ ํ์ ๋น๋ ธ๋๋ฐ, ์ด ๋ฌธ์ ๋ ๋ํ์ ์ธ "๋ ์ ๋ฌธ์ "๋ผ๊ณ ํ๋ค. ๋ ์ ๋ฌธ์ (knapsack problem)๋? ๋ ์ ๋ฌธ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pf19L/btqZ3gv5xgb/jBfxzmbwPG2Xq3EchHo6qk/img.png)
๋ฌธ์ www.acmicpc.net/problem/1520 1520๋ฒ: ๋ด๋ฆฌ๋ง ๊ธธ ์ฌํ์ ๋ ๋ ์ธ์ค์ด๋ ์ง๋๋ฅผ ํ๋ ๊ตฌํ์๋ค. ์ด ์ง๋๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ง์ฌ๊ฐํ ๋ชจ์์ด๋ฉฐ ์ฌ๋ฌ ์นธ์ผ๋ก ๋๋์ด์ ธ ์๋ค. ํ ์นธ์ ํ ์ง์ ์ ๋ํ๋ด๋๋ฐ ๊ฐ ์นธ์๋ ๊ทธ ์ง์ ์ ๋์ด๊ฐ ์ฐ์ฌ ์์ผ www.acmicpc.net ํ์ด ์ฒ์์๋ DP๋ง ์ด์ฉํด์, cache[i][j]์ (i,j) ์์น๊น์ง ๋์ฐฉํ ์ ์๋ ๋ชจ๋ ๋ด๋ฆฌ๋ง๊ธธ ๊ฒฝ์ฐ์ ์๋ฅผ ์ ์ฅํ๋ ค๊ณ ํ๋ค. ํ์ง๋ง, ์ํ์ข์ฐ๋ก ๋ชจ๋ ์ด๋์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฐฉ๋ฒ์ ์คํจํ๋ค. ๋ ๋ฒ์งธ ์๊ฐ๋ ๋ฐฉ๋ฒ์, ์ต๋จ๊ฒฝ๋ก์ฐพ๊ธฐ ๋ฌธ์ ๋ก ํด์ํด์ BFS๋ก ํธ๋ ๋ฐฉ๋ฒ์ด์๋ค. ํ์ง๋ง, ์๊ฐ์ด๊ณผ ๋๋ฌธ์ ์ด ๋ฐฉ๋ฒ์ ์คํจํ๋ค. ์ต์ข ๋ฐฉ๋ฒ์, DFS์ DP๋ฅผ ์ ๋ชฉํ ๋ฐฉ๋ฒ์ด๋ค. DFS๋ก ํ์ํ๋, DP์ ๋ฉ๋ชจ๋ฆฌ..
๊ตฌํํ๊ณ ์ถ์ ๊ฒ :client๊ฐ ํ์ด์ง์ ์ ์ํ์ ๋, server๋ก๋ถํฐ ๋ฐ์ดํฐ ๋ฐ๊ธฐ (initial data) ์ฝ๋:server.js ์ผ๋ถ app.use('/api', (req, res)=> mdbConn.getToDoList() .then((rows) => { console.log("in server.js",rows); res.json({initialTodos:rows}); }) .catch((errMsg) => { console.log(errMsg); })); App.js ์ผ๋ถ (client)function App() { const [state, setState] = useState({ //username: null ..