Backtracking
-
- [BOJ-14889][C++] ์คํํธ์ ๋งํฌ
์คํํธ์ ๋งํฌ ๋ฌธ์ ์ค๋์ ์คํํธ๋งํฌ์ ๋ค๋๋ ์ฌ๋๋ค์ด ๋ชจ์ฌ์ ์ถ๊ตฌ๋ฅผ ํด๋ณด๋ ค๊ณ ํ๋ค. ์ถ๊ตฌ๋ ํ์ผ ์คํ์ ํ๊ณ ์๋ฌด ์ฐธ์๋ ์๋๋ค. ์ถ๊ตฌ๋ฅผ ํ๊ธฐ ์ํด ๋ชจ์ธ ์ฌ๋์ ์ด N๋ช ์ด๊ณ ์ ๊ธฐํ๊ฒ๋ N์ ์ง์์ด๋ค. ์ด์ N/2๋ช ์ผ๋ก ์ด๋ฃจ์ด์ง ์คํํธ ํ๊ณผ ๋งํฌ ํ์ผ๋ก ์ฌ๋๋ค์ ๋๋ ์ผ ํ๋ค. BOJ๋ฅผ ์ด์ํ๋ ํ์ฌ ๋ต๊ฒ ์ฌ๋์๊ฒ ๋ฒํธ๋ฅผ 1๋ถํฐ N๊น์ง๋ก ๋ฐฐ์ ํ๊ณ , ์๋์ ๊ฐ์ ๋ฅ๋ ฅ์น๋ฅผ ์กฐ์ฌํ๋ค. ๋ฅ๋ ฅ์น $S_{ij}$๋ i๋ฒ ์ฌ๋๊ณผ j๋ฒ ์ฌ๋์ด ๊ฐ์ ํ์ ์ํ์ ๋, ํ์ ๋ํด์ง๋ ๋ฅ๋ ฅ์น์ด๋ค. ํ์ ๋ฅ๋ ฅ์น๋ ํ์ ์ํ ๋ชจ๋ ์์ ๋ฅ๋ ฅ์น Sij์ ํฉ์ด๋ค. $S_{ij}$๋ $S_{ji}$์ ๋ค๋ฅผ ์๋ ์์ผ๋ฉฐ, i๋ฒ ์ฌ๋๊ณผ j๋ฒ ์ฌ๋์ด ๊ฐ์ ํ์ ์ํ์ ๋, ํ์ ๋ํด์ง๋ ๋ฅ๋ ฅ์น๋ $S_{ij}$์ $S_{ji}$์ด๋ค. N=..
2022.12.01 -
- [BOJ-14888][C++] ์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ
๋ฌธ์ N๊ฐ์ ์๋ก ์ด๋ฃจ์ด์ง ์์ด $A_1, A_2, ..., A_N$์ด ์ฃผ์ด์ง๋ค. ๋, ์์ ์ ์ฌ์ด์ ๋ผ์๋ฃ์ ์ ์๋ N-1๊ฐ์ ์ฐ์ฐ์๊ฐ ์ฃผ์ด์ง๋ค. ์ฐ์ฐ์๋ ๋ง์ (+), ๋บ์ (-), ๊ณฑ์ (×), ๋๋์ (÷)์ผ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ค. ์ฐ๋ฆฌ๋ ์์ ์ ์ฌ์ด์ ์ฐ์ฐ์๋ฅผ ํ๋์ฉ ๋ฃ์ด์, ์์์ ํ๋ ๋ง๋ค ์ ์๋ค. ์ด๋, ์ฃผ์ด์ง ์์ ์์๋ฅผ ๋ฐ๊พธ๋ฉด ์ ๋๋ค. ์๋ฅผ ๋ค์ด, 6๊ฐ์ ์๋ก ์ด๋ฃจ์ด์ง ์์ด์ด 1, 2, 3, 4, 5, 6์ด๊ณ , ์ฃผ์ด์ง ์ฐ์ฐ์๊ฐ ๋ง์ (+) 2๊ฐ, ๋บ์ (-) 1๊ฐ, ๊ณฑ์ (×) 1๊ฐ, ๋๋์ (÷) 1๊ฐ์ธ ๊ฒฝ์ฐ์๋ ์ด 60๊ฐ์ง์ ์์ ๋ง๋ค ์ ์๋ค. ์๋ฅผ ๋ค์ด, ์๋์ ๊ฐ์ ์์ ๋ง๋ค ์ ์๋ค. 1+2+3-4×5÷6 1÷2+3+4-5×6 1+2÷3×4-5+6 1÷2×3-4+5+6 ์์ ๊ณ์ฐ์ ์ฐ..
2022.11.28 -
- [BOJ-2580][C++] ์ค๋์ฟ
๋ฌธ์ ์ค๋์ฟ ๋ 18์ธ๊ธฐ ์ค์์ค ์ํ์๊ฐ ๋ง๋ '๋ผํด ์ฌ๊ฐํ'์ด๋ ํผ์ฆ์์ ์ ๋ํ ๊ฒ์ผ๋ก ํ์ฌ ๋ง์ ์ธ๊ธฐ๋ฅผ ๋๋ฆฌ๊ณ ์๋ค. ์ด ๊ฒ์์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๊ฐ๋ก, ์ธ๋ก ๊ฐ๊ฐ 9๊ฐ์ฉ ์ด 81๊ฐ์ ์์ ์นธ์ผ๋ก ์ด๋ฃจ์ด์ง ์ ์ฌ๊ฐํ ํ ์์์ ์ด๋ค์ง๋๋ฐ, ๊ฒ์ ์์ ์ ์ผ๋ถ ์นธ์๋ 1๋ถํฐ 9๊น์ง์ ์ซ์ ์ค ํ๋๊ฐ ์ฐ์ฌ ์๋ค. ๋๋จธ์ง ๋น ์นธ์ ์ฑ์ฐ๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค. ๊ฐ๊ฐ์ ๊ฐ๋ก์ค๊ณผ ์ธ๋ก์ค์๋ 1๋ถํฐ 9๊น์ง์ ์ซ์๊ฐ ํ ๋ฒ์ฉ๋ง ๋ํ๋์ผ ํ๋ค. ๊ตต์ ์ ์ผ๋ก ๊ตฌ๋ถ๋์ด ์๋ 3x3 ์ ์ฌ๊ฐํ ์์๋ 1๋ถํฐ 9๊น์ง์ ์ซ์๊ฐ ํ ๋ฒ์ฉ๋ง ๋ํ๋์ผ ํ๋ค. ์์ ์์ ๊ฒฝ์ฐ, ์ฒซ์งธ ์ค์๋ 1์ ์ ์ธํ ๋๋จธ์ง 2๋ถํฐ 9๊น์ง์ ์ซ์๋ค์ด ์ด๋ฏธ ๋ํ๋ ์์ผ๋ฏ๋ก ์ฒซ์งธ ์ค ๋น์นธ์๋ 1์ด ๋ค์ด๊ฐ์ผ ํ๋ค. ๋ํ ์์ชฝ ๊ฐ์ด๋ฐ ์์นํ 3x3 ์ ์ฌ๊ฐํ์ ..
2022.11.22 -
- [BOJ-9663][C++] N-Queen
๋ฌธ์ N-Queen ๋ฌธ์ ๋ ํฌ๊ธฐ๊ฐ N × N์ธ ์ฒด์คํ ์์ ํธ N๊ฐ๋ฅผ ์๋ก ๊ณต๊ฒฉํ ์ ์๊ฒ ๋๋ ๋ฌธ์ ์ด๋ค. N์ด ์ฃผ์ด์ก์ ๋, ํธ์ ๋๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. (1 ≤ N < 15) ์ถ๋ ฅ ์ฒซ์งธ ์ค์ ํธ N๊ฐ๋ฅผ ์๋ก ๊ณต๊ฒฉํ ์ ์๊ฒ ๋๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ์์ ์ ๋ ฅ 1 8 ์์ ์ถ๋ ฅ 1 92 ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ ๋ฐฑํธ๋ํน ๋ฌธ์ ์ถ์ฒ https://www.acmicpc.net/problem/9663 9663๋ฒ: N-Queen N-Queen ๋ฌธ์ ๋ ํฌ๊ธฐ๊ฐ N × N์ธ ์ฒด์คํ ์์ ํธ N๊ฐ๋ฅผ ์๋ก ๊ณต๊ฒฉํ ์ ์๊ฒ ๋๋ ๋ฌธ์ ์ด๋ค. N์ด ์ฃผ์ด์ก์ ๋, ํธ์ ๋๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ..
2022.11.20 -
- [BOJ-15652][C++] N๊ณผ M (4)
๋ฌธ์ ์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ก์ ๋, ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. 1๋ถํฐ N๊น์ง ์์ฐ์ ์ค์์ M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด ๊ฐ์ ์๋ฅผ ์ฌ๋ฌ ๋ฒ ๊ณจ๋ผ๋ ๋๋ค. ๊ณ ๋ฅธ ์์ด์ ๋น๋ด๋ฆผ์ฐจ์์ด์ด์ผ ํ๋ค. ๊ธธ์ด๊ฐ K์ธ ์์ด A๊ฐ $A_1 ≤ A_2 ≤ ... ≤ A_{K-1} ≤ A_{K}$ ๋ฅผ ๋ง์กฑํ๋ฉด, ๋น๋ด๋ฆผ์ฐจ์์ด๋ผ๊ณ ํ๋ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 ≤ M ≤ N ≤ 8) ์ถ๋ ฅ ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค. ์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด์ผ ํ๋ค. ์์ ์ ๋ ฅ 1 3 1 ์์ ์ถ๋ ฅ 1 1 2 3 ์์ ์ ๋ ฅ 2 4 2 ์์ ์ถ๋ ฅ 2..
2022.11.18 -
- [BOJ-15651][C++] N๊ณผ M (3)
๋ฌธ์ ์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ก์ ๋, ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. 1๋ถํฐ N๊น์ง ์์ฐ์ ์ค์์ M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด ๊ฐ์ ์๋ฅผ ์ฌ๋ฌ ๋ฒ ๊ณจ๋ผ๋ ๋๋ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 ≤ M ≤ N ≤ 7) ์ถ๋ ฅ ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค. ์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด์ผ ํ๋ค. ์์ ์ ๋ ฅ 1 3 1 ์์ ์ถ๋ ฅ 1 1 2 3 ์์ ์ ๋ ฅ 2 4 2 ์์ ์ถ๋ ฅ 2 1 1 1 2 1 3 1 4 2 1 2 2 2 3 2 4 3 1 3 2 3 3 3 4 4 1 4 2 4 3 4 4 ์์ ์ ๋ ฅ 3 3 3 ์์ ์ถ๋ ฅ 3 1 1 1..
2022.11.18 -
- [BOJ-15650][C++] N๊ณผ M (2)
๋ฌธ์ ์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ก์ ๋, ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. 1๋ถํฐ N๊น์ง ์์ฐ์ ์ค์์ ์ค๋ณต ์์ด M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด ๊ณ ๋ฅธ ์์ด์ ์ค๋ฆ์ฐจ์์ด์ด์ผ ํ๋ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 ≤ M ≤ N ≤ 8) ์ถ๋ ฅ ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค. ์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด์ผ ํ๋ค. ์์ ์ ๋ ฅ 1 3 1 ์์ ์ถ๋ ฅ 1 1 2 3 ์์ ์ ๋ ฅ 2 4 2 ์์ ์ถ๋ ฅ 2 1 2 1 3 1 4 2 3 2 4 3 4 ์์ ์ ๋ ฅ 3 4 4 ์์ ์ถ๋ ฅ 3 1 2 3 4 ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ ๋ฐฑํธ๋ํน ๋ฌธ์ ์ถ์ฒ https://www...
2022.11.18 -
- [BOJ-15649][C++] N๊ณผ M (1)
๋ฌธ์ ์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ก์ ๋, ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. 1๋ถํฐ N๊น์ง ์์ฐ์ ์ค์์ ์ค๋ณต ์์ด M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด ์ ๋ ฅ ์ฒซ์งธ ์ค์ ์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 ≤ M ≤ N ≤ 8) ์ถ๋ ฅ ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค. ์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด์ผ ํ๋ค. ์์ ์ ๋ ฅ 1 3 1 ์์ ์ถ๋ ฅ 1 1 2 3 ์์ ์ ๋ ฅ 2 4 2 ์์ ์ถ๋ ฅ 2 1 2 1 3 1 4 2 1 2 3 2 4 3 1 3 2 3 4 4 1 4 2 4 3 ์์ ์ ๋ ฅ 3 4 4 ์์ ์ถ๋ ฅ 3 1 2 3 4 1 2 4 3 1 3 2 4 1 3 4 2 1 ..
2022.11.17 -
- [Algorithm] ๋ฐฑํธ๋ํน(Backtracking)
๋ฐฑํธ๋ํน(Backtracking) ๊ฐ๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ณ ๋ คํ๋ ์๊ณ ๋ฆฌ์ฆ ์ํ ๊ณต๊ฐ์ ํธ๋ฆฌ(Tree)๋ก ๋ํ๋ผ ์ ์์ ๋ ์ ํฉํ ๋ฐฉ์์ด๋ค. ์ผ์ข ์ ํธ๋ฆฌ ํ์ ์๊ณ ๋ฆฌ์ฆ(Tree Search Algorithm)์ด๋ผ๊ณ ๋ด๋ ๋๋ค. ๋ฐฉ์์ ๋ฐ๋ฅธ ๋ถ๋ฅ ๊น์ด ์ฐ์ ํ์(Depth First Search, DFS) ๋๋น ์ฐ์ ํ์(Breadth First Search, BFS) ์ต์ ์ฐ์ ํ์(Best First Search / Heuristic Search) ๊ฒฝ์ฐ์ ์ ๊ตฌํ๊ธฐ๋ ์ผ๋ฐ์ ์ผ๋ก DFS๊ฐ ํธ๋ฆฌํ๋ฉฐ, ๋๋ค์์ ๋ฌธ์ ๋ค์ DFS๋ฅผ ์จ๋ ์ผ๋จ ๋ต์ ๋์จ๋ค. ํ์ง๋ง, ํธ๋ฆฌ์ ๊น์ด(Depth)๊ฐ ๋ฌดํ๋๊ฐ ๋ ๊ฒฝ์ฐ์๋ DFS๋ฅผ ์ฌ์ฉํ๋ฉด ์๋๋ค. ์) ๋ฏธ๋ก ์ฐพ๊ธฐ์์ ๋ฃจํ(ํ๋ก)๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ, DFS๋ ์ด ๊ฐ์ง๋ฅผ ..
2022.11.16