๐ค PS(Problem Solving)/๋ฐฑ์ค(BOJ)
[๋ฐฑ์ค/java] 15651 - N๊ณผ M (3)
๋ฌธ์ 15651๋ฒ: N๊ณผ M (3) ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค. ์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด www.acmicpc.net ์ฝ๋
[๋ฐฑ์ค/java] 15649 - N๊ณผ M (1)
๋ฌธ์ 15649๋ฒ: N๊ณผ M (1) ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค. ์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด www.acmicpc.net ์ฝ๋() *๊ฐ ์๋๋ผ๋ฉด ์๋ ค์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค(--)(__)*
[๋ฐฑ์ค/c++] 11657 - ํ์๋จธ์
๋ฌธ์ 11657๋ฒ: ํ์๋จธ์ ์ฒซ์งธ ์ค์ ๋์์ ๊ฐ์ N (1 ≤ N ≤ 500), ๋ฒ์ค ๋ ธ์ ์ ๊ฐ์ M (1 ≤ M ≤ 6,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์๋ ๋ฒ์ค ๋ ธ์ ์ ์ ๋ณด A, B, C (1 ≤ A, B ≤ N, -10,000 ≤ C ≤ 10,000)๊ฐ ์ฃผ์ด์ง๋ค. www.acmicpc.net ํ์ด ๋ถ๋ฅ : ๋ฒจ๋ง-ํฌ๋ ์๊ณ ๋ฆฌ์ฆ ์ต๋จ๊ฑฐ๋ฆฌ ์ฐพ๊ธฐ + ์์ ๊ฐ์ค์น ์ด๋ฏ๋ก ๋ฒจ๋งํฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํฉ๋๋ค. ์ฝ๋(O((n^2)*m) *O((n^2)*m์ด ์๋๋ผ๋ฉด ์๋ ค์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค(--)(__)*
[๋ฐฑ์ค/c++] 1012๋ฒ - ์ ๊ธฐ๋ ๋ฐฐ์ถ
๋ฌธ์ 1012๋ฒ: ์ ๊ธฐ๋ ๋ฐฐ์ถ ์ฐจ์ธ๋ ์๋์ธ ํ๋๋ ๊ฐ์๋ ๊ณ ๋ญ์ง์์ ์ ๊ธฐ๋ ๋ฐฐ์ถ๋ฅผ ์ฌ๋ฐฐํ๊ธฐ๋ก ํ์๋ค. ๋์ฝ์ ์ฐ์ง ์๊ณ ๋ฐฐ์ถ๋ฅผ ์ฌ๋ฐฐํ๋ ค๋ฉด ๋ฐฐ์ถ๋ฅผ ํด์ถฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๋ ๊ฒ์ด ์ค์ํ๊ธฐ ๋๋ฌธ์, ํ๋๋ ํด์ถฉ ๋ฐฉ์ง์ ํจ๊ณผ์ ์ธ ๋ฐฐ์ถํฐ์ง๋ ์ด๋ฅผ ๊ตฌ์ ํ๊ธฐ๋ก ๊ฒฐ์ฌํ๋ค. ์ด ์ง๋ ์ด๋ ๋ฐฐ์ถ๊ทผ์ฒ์ ์์ํ๋ฉฐ ํด์ถฉ์ ์ก์ ๋จน์์ผ๋ก์จ ๋ฐฐ์ถ๋ฅผ ๋ณดํธํ๋ค. ํนํ, ์ด๋ค ๋ฐฐ์ถ์ ๋ฐฐ์ถํฐ์ง๋ ์ด๊ฐ ํ ๋ง๋ฆฌ๋ผ๋ ์ด๊ณ ์์ผ๋ฉด ์ด ์ง๋ ์ด๋ ์ธ์ ํ ๋ค๋ฅธ ๋ฐฐ์ถ๋ก ์ด๋ํ ์ ์์ด, ๊ทธ ๋ฐฐ์ถ๋ค ์ญ์ ํด์ถฉ์ผ๋ก๋ถํฐ ๋ณดํธ๋ฐ์ ์ ์๋ค. ( www.acmicpc.net ํ์ด ๋ถ๋ฅ : ๊ทธ๋ํ, DFS 1. ๋ฐญ์ ๋ํ๋ผ int 2์ฐจ๋ฐฐ์ด, ๋ฐฉ๋ฌธ์ฒดํฌํ bool 2์ฐจ๋ฐฐ์ด์ ์ ์ธํฉ๋๋ค. 2. field[0][0] ~ field[M-1][N-1] ๊น์ง for๋ฌธ์ผ๋ก ๋๋ฉด์,..
[๋ฐฑ์ค/c++] 11729๋ฒ - ํ๋ ธ์ด ํ ์ด๋ ์์
๋ฌธ์ 11729๋ฒ: ํ๋ ธ์ด ํ ์ด๋ ์์ ์ธ ๊ฐ์ ์ฅ๋๊ฐ ์๊ณ ์ฒซ ๋ฒ์งธ ์ฅ๋์๋ ๋ฐ๊ฒฝ์ด ์๋ก ๋ค๋ฅธ n๊ฐ์ ์ํ์ด ์์ฌ ์๋ค. ๊ฐ ์ํ์ ๋ฐ๊ฒฝ์ด ํฐ ์์๋๋ก ์์ฌ์๋ค. ์ด์ ์๋์น๋ค์ด ๋ค์ ๊ท์น์ ๋ฐ๋ผ ์ฒซ ๋ฒ์งธ ์ฅ๋์์ ์ธ ๋ฒ์งธ ์ฅ๋๋ก ์ฎ๊ธฐ๋ ค ํ๋ค. ํ ๋ฒ์ ํ ๊ฐ์ ์ํ๋ง์ ๋ค๋ฅธ ํ์ผ๋ก ์ฎ๊ธธ ์ ์๋ค. ์์ ๋์ ์ํ์ ํญ์ ์์ ๊ฒ์ด ์๋์ ๊ฒ๋ณด๋ค ์์์ผ ํ๋ค. ์ด ์์ ์ ์ํํ๋๋ฐ ํ์ํ ์ด๋ ์์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ. ๋จ, ์ด๋ ํ์๋ ์ต์๊ฐ ๋์ด์ผ ํ๋ค. ์๋ ๊ทธ๋ฆผ์ ์ํ์ด 5 www.acmicpc.net ํ์ด ๋ถ๋ฅ : ๋ถํ ์ ๋ณต ์ฃผ์ด์ง ์์ ๋ก ํ๋ ธ์ด์ ํ ์๋ฆฌ๋ฅผ ์๊ฐํด๋ด ๋๋ค. (1)์ํ์ ๊ฐฏ์๊ฐ 1๊ฐ์ผ ๊ฒฝ์ฐ -ํ๋๋ฟ์ด๋ฏ๋ก 3๋ฒ๊ธฐ๋ฅ์ผ๋ก ๋ฐ๋ก ์ฎ๊น๋๋ค. 1 3 (2)์ํ์ ๊ฐฏ์๊ฐ 2๊ฐ์ผ ..
[๋ฐฑ์ค/c++] 1107๋ฒ - ๋ฆฌ๋ชจ์ปจ
๋ฌธ์ 1107๋ฒ: ๋ฆฌ๋ชจ์ปจ ์ฒซ์งธ ์ค์ ์๋น์ด๊ฐ ์ด๋ํ๋ ค๊ณ ํ๋ ์ฑ๋ N (0 ≤ N ≤ 500,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ ๊ณ ์ฅ๋ ๋ฒํผ์ ๊ฐ์ M (0 ≤ M ≤ 10)์ด ์ฃผ์ด์ง๋ค. ๊ณ ์ฅ๋ ๋ฒํผ์ด ์๋ ๊ฒฝ์ฐ์๋ ์ ์งธ ์ค์๋ ๊ณ ์ฅ๋ ๋ฒํผ์ด ์ฃผ์ด์ง๋ฉฐ, ๊ฐ์ ๋ฒํผ์ด ์ฌ๋ฌ ๋ฒ ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ๋ ์๋ค. www.acmicpc.net ํ์ด ๋ถ๋ฅ : ์์ ํ์, ์ํ ์ฝ๋(O(nm)) *O(nm)์ด ์๋๋ผ๋ฉด ์๋ ค์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค(--)(__)*
[๋ฐฑ์ค/c++] 10819๋ฒ - ์ฐจ์ด๋ฅผ ์ต๋๋ก
๋ฌธ์ 10819๋ฒ: ์ฐจ์ด๋ฅผ ์ต๋๋ก ์ฒซ์งธ ์ค์ N (3 ≤ N ≤ 8)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ ๋ฐฐ์ด A์ ๋ค์ด์๋ ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ๋ฐฐ์ด์ ๋ค์ด์๋ ์ ์๋ -100๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. www.acmicpc.net ํ์ด ๋ถ๋ฅ : ์์ ํ์ ๋ฌด์์๋ก ๋์ด๋ ์์ด์์ |A[0] - A[1]| + |A[1] - A[2]| + ... + |A[N-2] - A[N-1]| ์ ์์ ์ต๋๊ฐ์ ๊ตฌํ๋ ๋ฌธ์ ์ ๋๋ค. 1. algorithmํค๋์ next_permutationํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌด์์์ ์์ด์ ๋ง๋ญ๋๋ค. 2. ๋ฌด์์๋ก ๋ง๋ค์ด์ง ์์ด์ ์์ ์์ ๋์ ํ์ฌ, ๊ฐ์ฅ ํฐ ๊ฐ์ด ๋์ฌ๋๋ง๋ค ์ต๋๊ฐ์ ๊ฐฑ์ ํด์ค๋๋ค. ์ฝ๋(O(n+1)!) *O(n+1)!์ด ์๋๋ผ๋ฉด ์๋ ค์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค(--)(__)*
[๋ฐฑ์ค/c++] 10610๋ฒ - 30
๋ฌธ์ 10610๋ฒ: 30 ๋ฌธ์ ์ด๋ ๋ , ๋ฏธ๋ฅด์ฝ๋ ์ฐ์ฐํ ๊ธธ๊ฑฐ๋ฆฌ์์ ์์ N์ ๋ณด์๋ค. ๋ฏธ๋ฅด์ฝ๋ 30์ด๋ ์๋ฅผ ์กด๊ฒฝํ๊ธฐ ๋๋ฌธ์, ๊ทธ๋ ๊ธธ๊ฑฐ๋ฆฌ์์ ์ฐพ์ ์์ ํฌํจ๋ ์ซ์๋ค์ ์์ด 30์ ๋ฐฐ์๊ฐ ๋๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ง๋ค๊ณ ์ถ์ดํ๋ค. ๋ฏธ๋ฅด์ฝ๋ฅผ ๋์ ๊ทธ๊ฐ ๋ง๋ค๊ณ ์ถ์ดํ๋ ์๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ. ์ ๋ ฅ N์ ์ ๋ ฅ๋ฐ๋๋ค. N๋ ์ต๋ 105๊ฐ์ ์ซ์๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, 0์ผ๋ก ์์ํ์ง ์๋๋ค. ์ถ๋ ฅ ๋ฏธ๋ฅด์ฝ๊ฐ ๋ง๋ค๊ณ ์ถ์ดํ๋ ์๊ฐ ์กด์ฌํ๋ค๋ฉด ๊ทธ ์๋ฅผ ์ถ๋ ฅํ๋ผ. ๊ทธ ์๊ฐ ์กด์ฌํ์ง ์๋ www.acmicpc.net ํ์ด ๋ถ๋ฅ : ๊ทธ๋ฆฌ๋ 30์ ๋ฐฐ์์ด๋ฉด์, ์ต๋์ธ ๊ฐ์ ์ฐพ์์ผ ํฉ๋๋ค. 1.30์ ๋ฐฐ์๋ ๋์๋ฆฌ๊ฐ ๋ฌด์กฐ๊ฑด 0์ผ๋ก, ์ ๋ ฅ๊ฐ์ 0์ด ์๋์ง ํ์ธํฉ๋๋ค.(์์ผ๋ฉด -1 ์ถ๋ ฅ) 2.์๋ฆฌ์๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํฉ๋..
[๋ฐฑ์ค/c++] 10971๋ฒ - ์ธํ์ ์ํ2
๋ฌธ์ 10971๋ฒ: ์ธํ์ ์ํ 2 ์ฒซ์งธ ์ค์ ๋์์ ์ N์ด ์ฃผ์ด์ง๋ค. (2 ≤ N ≤ 10) ๋ค์ N๊ฐ์ ์ค์๋ ๋น์ฉ ํ๋ ฌ์ด ์ฃผ์ด์ง๋ค. ๊ฐ ํ๋ ฌ์ ์ฑ๋ถ์ 1,000,000 ์ดํ์ ์์ ์ ์์ด๋ฉฐ, ๊ฐ ์ ์๋ ๊ฒฝ์ฐ๋ 0์ด ์ฃผ์ด์ง๋ค. W[i][j]๋ ๋์ i์์ j๋ก ๊ฐ๊ธฐ ์ํ ๋น์ฉ์ ๋ํ๋ธ๋ค. ํญ์ ์ํํ ์ ์๋ ๊ฒฝ์ฐ๋ง ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ค. www.acmicpc.net ํ์ด ๋ถ๋ฅ : ์์ ํ์+dfs ์ฝ๋(O(n)?) *O(n)์ด ์๋๋ผ๋ฉด ์๋ ค์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค(--)(__)*
[๋ฐฑ์ค/c++] 1525๋ฒ - ํผ์ฆ
๋ฌธ์ 1525๋ฒ: ํผ์ฆ ์ธ ์ค์ ๊ฑธ์ณ์ ํ์ ์ฑ์์ ธ ์๋ ์ํ ๊ฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ํ ์ค์ ์ธ ๊ฐ์ ์๊ฐ ์ฃผ์ด์ง๋ฉฐ, ๋น ์นธ์ 0์ผ๋ก ๋ํ๋ธ๋ค. www.acmicpc.net ํ์ด ๋ถ๋ฅ : ์์ ํ์ 0๋ง 3x3 ์์น๋ก ์ฎ๊ธฐ๋๊ฒ ์๋๋ผ, ํผ์ฆํ๊น์ง 1 2 3 4 5 6 7 8 0 ์์ผ๋ก ๋ง์ถฐ์ผ ํ๋ ๊ฒ์ด ์ด ๋ฌธ์ ์ ํต์ฌ์ด์์ต๋๋ค. + bfs ๊ฒฐ๊ตญ ์ ๋ ฅ๊ฐ์ 123456780์ ์์๋ก ๋ง๋ค์ ์๋์ง๋ฅผ ์ฒดํฌํ๋ฉด ๋์์ต๋๋ค. 1. ์ ๋ ฅ๊ฐ์ string ๋ฌธ์์ด๋ก ์ด๊ธฐํํ๋, 0์ 9๋ก ์นํํด์ค๋๋ค. 2. ์ฒ์ ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์ ํ์ ๋ฃ์ด์ค๋๋ค. 3. ํ์์ popํ ๋ฌธ์์ด์์ 9์ ์์น๋ฅผ ์ฐพ๊ณ , 9์ ์ํ์ข์ฐ๋ฅผ ์ค์ํฉ๋๋ค. 4. ์ค์์ผ๋ก ์๋ก ๋ง๋ค์ด์ง string๋ฌธ์์ด์ด, ์บ์์ key๋ก ์ด๋ฏธ ๋ฑ๋ก๋์ด์๋์ง ์ฒดํฌํฉ๋..