๐ ์๊ณ ๋ฆฌ์ฆ/BOJ (55) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [C++/BOJ] 10971 : ์ธํ์ ์ํ 2 (์์ ํ์, dfs, Backtracking) https://www.acmicpc.net/problem/10971 ๋ฌธ์ ์ธํ์ ์ํ ๋ฌธ์ ๋ ์์ด๋ก Traveling Salesman problem (TSP) ๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ฌธ์ ๋ก computer science ๋ถ์ผ์์ ๊ฐ์ฅ ์ค์ํ๊ฒ ์ทจ๊ธ๋๋ ๋ฌธ์ ์ค ํ๋์ด๋ค. ์ฌ๋ฌ ๊ฐ์ง ๋ณ์ข ๋ฌธ์ ๊ฐ ์์ผ๋, ์ฌ๊ธฐ์๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ํํ์ ๋ฌธ์ ๋ฅผ ์ดํด๋ณด์. 1๋ฒ๋ถํฐ N๋ฒ๊น์ง ๋ฒํธ๊ฐ ๋งค๊ฒจ์ ธ ์๋ ๋์๋ค์ด ์๊ณ , ๋์๋ค ์ฌ์ด์๋ ๊ธธ์ด ์๋ค. (๊ธธ์ด ์์ ์๋ ์๋ค) ์ด์ ํ ์ธํ์์ด ์ด๋ ํ ๋์์์ ์ถ๋ฐํด N๊ฐ์ ๋์๋ฅผ ๋ชจ๋ ๊ฑฐ์ณ ๋ค์ ์๋์ ๋์๋ก ๋์์ค๋ ์ํ ์ฌํ ๊ฒฝ๋ก๋ฅผ ๊ณํํ๋ ค๊ณ ํ๋ค. ๋จ, ํ ๋ฒ ๊ฐ๋ ๋์๋ก๋ ๋ค์ ๊ฐ ์ ์๋ค. (๋งจ ๋ง์ง๋ง์ ์ฌํ์ ์ถ๋ฐํ๋ ๋์๋ก ๋์์ค๋ ๊ฒ์ ์์ธ) ์ด๋ฐ ์ฌํ ๊ฒฝ๋ก๋ ์ฌ๋ฌ ๊ฐ.. [C++/BOJ] 9663 : N-Queen (์์ ํ์, Backtracking) https://www.acmicpc.net/problem/9663 ๋ฌธ์ N-Queen ๋ฌธ์ ๋ ํฌ๊ธฐ๊ฐ N × N์ธ ์ฒด์คํ ์์ ํธ N๊ฐ๋ฅผ ์๋ก ๊ณต๊ฒฉํ ์ ์๊ฒ ๋๋ ๋ฌธ์ ์ด๋ค. N์ด ์ฃผ์ด์ก์ ๋, ํธ์ ๋๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. (1 ≤ N < 15) ์ถ๋ ฅ ์ฒซ์งธ ์ค์ ํธ N๊ฐ๋ฅผ ์๋ก ๊ณต๊ฒฉํ ์ ์๊ฒ ๋๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ฌธ์ ํํธ์ ํธ์ Show must go on ๋ ธ๋๊ฐ ์๊ธธ๋ ์ ๋๊ฒ ๋ค์ผ๋ฉด์ ํ์์ ๋ฐฑ์ค ํฐ์ด ๊ณจ๋4, ์์ ํ์ + ๋ฐฑํธ๋ํน ๋ฌธ์ ์ด๋ค. ์ฒ์์ ๋ฐฑํธ๋ํน ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ๊ธด ํ์์ง๋ง ์ฌ๊ท ๊ณผ์ ์ด ์ ์ดํด๊ฐ ์๋์๋๋ฐ, ์ด๋ค ๋์์์ ์๋ ๊ทธ๋ฆผ์ ๋ณด๊ณ ๋ฐ๋ก ์ดํด๊ฐ ๋์๋ค. ์ฌ๊ท์ ํ๋ฆ๊ณผ ๋๊น์ ๋ฐ๋ก ๋ณผ ์ ์๋ ๊ทธ๋ฆผ์ด๋ค! main ide.. [C++/BOJ] 1158 : ์์ธํธ์ค ๋ฌธ์ (Queue) https://www.acmicpc.net/problem/1158 ๋ฌธ์ ์์ธํธ์ค ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ๋ค. 1๋ฒ๋ถํฐ N๋ฒ๊น์ง N๋ช ์ ์ฌ๋์ด ์์ ์ด๋ฃจ๋ฉด์ ์์์๊ณ , ์์ ์ ์ K(≤ N)๊ฐ ์ฃผ์ด์ง๋ค. ์ด์ ์์๋๋ก K๋ฒ์งธ ์ฌ๋์ ์ ๊ฑฐํ๋ค. ํ ์ฌ๋์ด ์ ๊ฑฐ๋๋ฉด ๋จ์ ์ฌ๋๋ค๋ก ์ด๋ฃจ์ด์ง ์์ ๋ฐ๋ผ ์ด ๊ณผ์ ์ ๊ณ์ํด ๋๊ฐ๋ค. ์ด ๊ณผ์ ์ N๋ช ์ ์ฌ๋์ด ๋ชจ๋ ์ ๊ฑฐ๋ ๋๊น์ง ๊ณ์๋๋ค. ์์์ ์ฌ๋๋ค์ด ์ ๊ฑฐ๋๋ ์์๋ฅผ (N, K)-์์ธํธ์ค ์์ด์ด๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด (7, 3)-์์ธํธ์ค ์์ด์ ์ด๋ค. N๊ณผ K๊ฐ ์ฃผ์ด์ง๋ฉด (N, K)-์์ธํธ์ค ์์ด์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ฃผ์ด์ง๋ค. (1 ≤ K ≤ N ≤ 5,000) ์ถ๋ ฅ ์์ ์ ๊ฐ์ด ์์ธํธ์ค ์์ด์ ์ถ๋ ฅํ๋ค.. [C++/BOJ] 7562 : ๋์ดํธ์ ์ด๋ (BFS) ๋ฌธ์ ์ฒด์คํ ์์ ํ ๋์ดํธ๊ฐ ๋์ฌ์ ธ ์๋ค. ๋์ดํธ๊ฐ ํ ๋ฒ์ ์ด๋ํ ์ ์๋ ์นธ์ ์๋ ๊ทธ๋ฆผ์ ๋์์๋ค. ๋์ดํธ๊ฐ ์ด๋ํ๋ ค๊ณ ํ๋ ์นธ์ด ์ฃผ์ด์ง๋ค. ๋์ดํธ๋ ๋ช ๋ฒ ์์ง์ด๋ฉด ์ด ์นธ์ผ๋ก ์ด๋ํ ์ ์์๊น? ์ ๋ ฅ ์ ๋ ฅ์ ์ฒซ์งธ ์ค์๋ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ์ธ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ์ฒซ์งธ ์ค์๋ ์ฒด์คํ์ ํ ๋ณ์ ๊ธธ์ด l(4 ≤ l ≤ 300)์ด ์ฃผ์ด์ง๋ค. ์ฒด์คํ์ ํฌ๊ธฐ๋ l × l์ด๋ค. ์ฒด์คํ์ ๊ฐ ์นธ์ ๋ ์์ ์ {0, ..., l-1} × {0, ..., l-1}๋ก ๋ํ๋ผ ์ ์๋ค. ๋์งธ ์ค๊ณผ ์ ์งธ ์ค์๋ ๋์ดํธ๊ฐ ํ์ฌ ์๋ ์นธ, ๋์ดํธ๊ฐ ์ด๋ํ๋ ค๊ณ ํ๋ ์นธ์ด ์ฃผ์ด์ง๋ค. ์ถ๋ ฅ ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค ๋์ดํธ๊ฐ ์ต์ ๋ช ๋ฒ๋ง์ ์ด๋ํ ์ ์๋์ง ์ถ๋ ฅํ๋ค. ๋ฐฑ์ค ์ค๋ฒ1. bfs๋ก .. [C++/BOJ] 1309 : ๋๋ฌผ์ (DP) ๋ฌธ์ ์ด๋ค ๋๋ฌผ์์ ๊ฐ๋ก๋ก ๋์นธ ์ธ๋ก๋ก N์นธ์ธ ์๋์ ๊ฐ์ ์ฐ๋ฆฌ๊ฐ ์๋ค. ์ด ๋๋ฌผ์์๋ ์ฌ์๋ค์ด ์ด๊ณ ์๋๋ฐ ์ฌ์๋ค์ ์ฐ๋ฆฌ์ ๊ฐ๋ ๋, ๊ฐ๋ก๋ก๋ ์ธ๋ก๋ก๋ ๋ถ์ด ์๊ฒ ๋ฐฐ์นํ ์๋ ์๋ค. ์ด ๋๋ฌผ์ ์กฐ๋ จ์ฌ๋ ์ฌ์๋ค์ ๋ฐฐ์น ๋ฌธ์ ๋๋ฌธ์ ๊ณจ๋จธ๋ฆฌ๋ฅผ ์๊ณ ์๋ค. ๋๋ฌผ์ ์กฐ๋ จ์ฌ์ ๋จธ๋ฆฌ๊ฐ ์ํ์ง ์๋๋ก ์ฐ๋ฆฌ๊ฐ 2*N ๋ฐฐ์ด์ ์ฌ์๋ฅผ ๋ฐฐ์นํ๋ ๊ฒฝ์ฐ์ ์๊ฐ ๋ช ๊ฐ์ง์ธ์ง๋ฅผ ์์๋ด๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด ์ฃผ๋๋ก ํ์. ์ฌ์๋ฅผ ํ ๋ง๋ฆฌ๋ ๋ฐฐ์นํ์ง ์๋ ๊ฒฝ์ฐ๋ ํ๋์ ๊ฒฝ์ฐ์ ์๋ก ์น๋ค๊ณ ๊ฐ์ ํ๋ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ์ฐ๋ฆฌ์ ํฌ๊ธฐ N(1≤N≤100,000)์ด ์ฃผ์ด์ง๋ค. ์ถ๋ ฅ ์ฒซ์งธ ์ค์ ์ฌ์๋ฅผ ๋ฐฐ์นํ๋ ๊ฒฝ์ฐ์ ์๋ฅผ 9901๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ์ฌ๋ผ. ๋ฐฑ์ค ์ค๋ฒ1. dp์ธ์ง dfs์ธ์ง ์ ๊น ํท๊ฐ๋ ธ์ง๋ง ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋๊ฑฐ๋๊น dp๋ก ํ์๋ค!.. [C++/BOJ] 2225 : ํฉ๋ถํด (DP) ๋ฌธ์ 0๋ถํฐ N๊น์ง์ ์ ์ K๊ฐ๋ฅผ ๋ํด์ ๊ทธ ํฉ์ด N์ด ๋๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋ง์ ์ ์์๊ฐ ๋ฐ๋ ๊ฒฝ์ฐ๋ ๋ค๋ฅธ ๊ฒฝ์ฐ๋ก ์ผ๋ค(1+2์ 2+1์ ์๋ก ๋ค๋ฅธ ๊ฒฝ์ฐ). ๋ํ ํ ๊ฐ์ ์๋ฅผ ์ฌ๋ฌ ๋ฒ ์ธ ์๋ ์๋ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ๋ ์ ์ N(1 ≤ N ≤ 200), K(1 ≤ K ≤ 200)๊ฐ ์ฃผ์ด์ง๋ค. ์ถ๋ ฅ ์ฒซ์งธ ์ค์ ๋ต์ 1,000,000,000์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ค. ๋ฐฑ์ค ๊ณจ๋5. ์ข ์ด๋ ค์ด dp๋ฌธ์ ์ ํ์ ์์๋ด๊ธฐ ์์ ๊ตฌ๊ธ๋งํด๋ณด๋ ์๋ ๋ค๋ฅธ ์ ํ์์ด ์๋๋ฐ, ๋ด๊ฐ ๊ตฌํ๊ฑด ์ฝ๊ฐ ๊ผผ์(?) ๋ฒ์ ์ธ๋ฏ. ๊ทธ๋ฅ n๊ณผ k๋ฅผ ๋์ ํด๋ณด๋ฉด์ ์์๋๋ค. dp[n][k] = dp[n-1][k] + dp[n][k-1] ๋์ ํ์ด #include #include using namespace st.. [C++/BOJ] 1697 : ์จ๋ฐ๊ผญ์ง (BFS) ๋ฌธ์ ์๋น์ด๋ ๋์๊ณผ ์จ๋ฐ๊ผญ์ง์ ํ๊ณ ์๋ค. ์๋น์ด๋ ํ์ฌ ์ N(0 ≤ N ≤ 100,000)์ ์๊ณ , ๋์์ ์ K(0 ≤ K ≤ 100,000)์ ์๋ค. ์๋น์ด๋ ๊ฑท๊ฑฐ๋ ์๊ฐ์ด๋์ ํ ์ ์๋ค. ๋ง์ฝ, ์๋น์ด์ ์์น๊ฐ X์ผ ๋ ๊ฑท๋๋ค๋ฉด 1์ด ํ์ X-1 ๋๋ X+1๋ก ์ด๋ํ๊ฒ ๋๋ค. ์๊ฐ์ด๋์ ํ๋ ๊ฒฝ์ฐ์๋ 1์ด ํ์ 2*X์ ์์น๋ก ์ด๋ํ๊ฒ ๋๋ค. ์๋น์ด์ ๋์์ ์์น๊ฐ ์ฃผ์ด์ก์ ๋, ์๋น์ด๊ฐ ๋์์ ์ฐพ์ ์ ์๋ ๊ฐ์ฅ ๋น ๋ฅธ ์๊ฐ์ด ๋ช ์ด ํ์ธ์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ ๋ฒ์งธ ์ค์ ์๋น์ด๊ฐ ์๋ ์์น N๊ณผ ๋์์ด ์๋ ์์น K๊ฐ ์ฃผ์ด์ง๋ค. N๊ณผ K๋ ์ ์์ด๋ค. ์ถ๋ ฅ ์๋น์ด๊ฐ ๋์์ ์ฐพ๋ ๊ฐ์ฅ ๋น ๋ฅธ ์๊ฐ์ ์ถ๋ ฅํ๋ค. ํํธ ์๋น์ด๊ฐ 5-10-9-18-17 ์์ผ๋ก ๊ฐ๋ฉด 4์ด๋ง์ ๋์์ ์ฐพ.. [C++/BOJ] 14940 : ์ฌ์ด ์ต๋จ๊ฑฐ๋ฆฌ (BFS) / test case ๋ฌธ์ ์ง๋๊ฐ ์ฃผ์ด์ง๋ฉด ๋ชจ๋ ์ง์ ์ ๋ํด์ ๋ชฉํ์ง์ ๊น์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ์ฌ๋ผ. ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ๋ง๋ค๊ธฐ ์ํด ์ค์ง ๊ฐ๋ก์ ์ธ๋ก๋ก๋ง ์์ง์ผ ์ ์๋ค๊ณ ํ์. ์ ๋ ฅ ์ง๋์ ํฌ๊ธฐ n๊ณผ m์ด ์ฃผ์ด์ง๋ค. n์ ์ธ๋ก์ ํฌ๊ธฐ, m์ ๊ฐ๋ก์ ํฌ๊ธฐ๋ค.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) ๋ค์ n๊ฐ์ ์ค์ m๊ฐ์ ์ซ์๊ฐ ์ฃผ์ด์ง๋ค. 0์ ๊ฐ ์ ์๋ ๋ ์ด๊ณ 1์ ๊ฐ ์ ์๋ ๋ , 2๋ ๋ชฉํ์ง์ ์ด๋ค. ์ ๋ ฅ์์ 2๋ ๋จ ํ๊ฐ์ด๋ค. ์ถ๋ ฅ ๊ฐ ์ง์ ์์ ๋ชฉํ์ง์ ๊น์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ์ถ๋ ฅํ๋ค. ์๋ ๊ฐ ์ ์๋ ๋ ์ธ ์์น๋ 0์ ์ถ๋ ฅํ๊ณ , ์๋ ๊ฐ ์ ์๋ ๋ ์ธ ๋ถ๋ถ ์ค์์ ๋๋ฌํ ์ ์๋ ์์น๋ -1์ ์ถ๋ ฅํ๋ค. ๋ฐฑ์ค ์ค๋ฒ 1. ์์ ์๋ ๊ณจ5์๋ ๋ฏ ํ๋ค ํ ์ง์ง ํผ์ ๋๋๋๋ฉด์ ํ์๊ฐ๋์ ์ด์ฌํ ํ์๋ค ๋ง์ถ๊ณ ๋์ ๋ค์ ์ฝ๋๋ฅผ ๋ณด๋ .. ์ด์ 1 2 3 4 5 6 7 ๋ค์