๋ชฉ๋กProblem Solving/Baekjoon (21)
skive ๐ฟ

[๋ฌธ์ ]๋ฐฑ์ค 17265 - ๋์ ์ธ์์๋ ์ํ๊ณผ ํจ๊ป n x n ํฌ๊ธฐ์ ๊ฒฉ์ํ์ ์ซ์์ ์ฐ์ฐ์(+, -, *)๊ฐ ์์ฌ ์๋ค.(0,0)์์ ์์ํ์ฌ ์ค๋ฅธ์ชฝ์ด๋ ์๋์ชฝ์ผ๋ก๋ง ์ด๋ํ ์ ์๋ค.์ด๋ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ์์์ ๊ณ์ฐํ์ ๋ ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ๊ตฌํ๋ ๋ฌธ์ . [๋ฌธ์ ํ์ด] DFS(๊น์ด ์ฐ์ ํ์) ๋ฅผ ์ด์ฉํด ๋ชจ๋ ๊ฐ๋ฅํ ๊ฒฝ๋ก๋ฅผ ํ์ํ๋ค.์ซ์ ์นธ์ ๋์ฐฉํ๋ฉด ํ์ฌ๊น์ง์ ๊ฐ๊ณผ ์ง์ ์ฐ์ฐ์๋ฅผ ์ด์ฉํด ์๋ก์ด ๊ฐ์ ๊ณ์ฐํ๋ค.์ฐ์ฐ์ ์นธ์ ๋์ฐฉํ๋ฉด ํ์ฌ ์ฐ์ฐ์๋ฅผ ๊ฐฑ์ ํ๋ค.(n-1, n-1) ๋์ฐฉ ์ง์ ์ ๋์ฐฉํ๋ฉด ์ง๊ธ๊น์ง ๊ณ์ฐ๋ ๊ฒฐ๊ณผ๋ก ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ๊ฐฑ์ ํ๋ค.์ฐ์ฐ์์ ๋ฐ๋ผ ๊ณ์ฐํ๋ ํจ์ cal()์ ๋ช ํํ ๋ถ๋ฆฌํด์ ๊ฐ๋ ์ฑ์ ๋์๋ค. ์ฒซ ์์์ธ (0,0) ์ขํ๋ ํญ์ ์ซ์๋ผ์ DFS๋ฅผ ํธ์ถํ ๋ ์ซ์๊ฐ๋ง cur๋ก ..

[๋ฌธ์ ]๋ฐฑ์ค 28069 - ๊น๋ฐฅ์ฒ๊ตญ์ ๊ณ๋จ ์์์ ์ 0๋ฒ ๊ณ๋จ, ๋ชฉํ๋ n๋ฒ ๊ณ๋จ์ ์ ํํ k๋ฒ ์ดํ์ ์ด๋์ผ๋ก ๋๋ฌํ๋ ๊ฒ ์ด๋ ๋ฐฉ์์ ๋ ๊ฐ์ง:ํ์ฌ ๊ณ๋จ +1ํ์ฌ ๊ณ๋จ + (ํ์ฌ ๊ณ๋จ / 2)๋ชฉํ: ์ ํํ k๋ฒ ์ดํ์ ์ด๋์ผ๋ก n๋ฒ ๊ณ๋จ์ ๋๋ฌํ ์ ์์ผ๋ฉด "minigimbob", ์๋๋ฉด "water" ์ถ๋ ฅ int nx1 = cur + 1;int nx2 = cur + (cur / 2); [๋ฌธ์ ํ์ด] ์ด ๋ฌธ์ ๋ ๊ฐ์ค์น๊ฐ ๋ชจ๋ 1์ธ ๊ทธ๋ํ์ ์ต๋จ๊ฑฐ๋ฆฌ ๋ฌธ์ ์ ๊ฐ์ผ๋ฏ๋ก BFS๊ฐ ์ ํฉํ๋ค๊ณ ์๊ฐํ๋ค. ๋ฐฉ๋ฌธ ๋ฐฐ์ด visited์ 0๋ฒ ๊ณ๋จ์์ x๋ฒ ๊ณ๋จ๊น์ง ๋๋ฌํ๋ ์ต์ ์ด๋ ํ์๋ฅผ ์ ์ฅํ๊ณ , BFS ํ์ ๋์ค n๋ฒ ๊ณ๋จ์ ๋๋ฌํ์ ๋ visited[n] - 1 BFS์์๋ ๋ค์ ์ํ๋ฅผ ์๋์ ๊ฐ์ด..

[๋ฌธ์ ]๋ฐฑ์ค 27971 - ๊ฐ์์ง๋ ๋ง์์๋ก ์ข๋ค [๋ฌธ์ ํ์ด]์ด ๋ฌธ์ ๋ ํน์ ์ํ(๊ฐ์์ง ์)์์ ์์ํ์ฌ A ๋๋ B๋ฅผ ๋ํ๋ ์์ผ๋ก ์ํ๋ฅผ ํ์ฅํด ๋๊ฐ๋ ์ต๋จ ๊ฑฐ๋ฆฌ ํ์ ๋ฌธ์ ๋ก ๋ณผ ์ ์๋ค. ๋ฐ๋ผ์ BFS(๋๋น ์ฐ์ ํ์)์ ํ์ฉํ์ฌ ์ง๊ด์ ์ผ๋ก ๊ตฌํํด๋ดค๋ค. 1. q.push({0, 0}): ๊ฐ์์ง ์ 0๋ง๋ฆฌ๋ถํฐ ์์, ํ๋ ํ์๋ 02. visited[]: ์ค๋ณต ๋ฐฉ๋ฌธ ๋ฐฉ์ง3. arr[]: ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ๊ธ์ง ๊ตฌ๊ฐ์ ๋งํน. arr[i] == 1์ด๋ฉด ํด๋น ์์ ๊ฐ์์ง๋ฅผ ๋ง๋ค๋ฉด ์ ๋จ4. next > 100000: ๋ฌธ์ ์ ํ ๋ฒ์๋ฅผ ์ด๊ณผํ๋ฉด ๋ฌด์. BFS ํน์ฑ์ ๊ฐ์ฅ ๋จผ์ ๋์ฐฉํ ๊ฒฝ๋ก๊ฐ ๊ณง ์ต์ ํ๋ ํ์๊ฐ ๋๋ค. [์์ค ์ฝ๋]#include using namespace std;int n, m, ..

[๋ฌธ์ ]๋ฐฑ์ค 18126 - ๋๊ตฌ๋ฆฌ ๊ตฌ๊ตฌ ๋ ธ๋ ์ n (์ต๋ 5,000๊ฐ)n-1๊ฐ์ ๊ฐ์ (ํธ๋ฆฌ ๊ตฌ์กฐ)๊ฐ ๊ฐ์ ์๋ ๊ฑฐ๋ฆฌ ๊ฐ์ค์น๊ฐ ์์์์์ ๋ ์ ์ ์ฌ์ด์ ์ต๋ ๊ฑฐ๋ฆฌ(ํธ๋ฆฌ์ ์ง๋ฆ)๋ฅผ ์ถ๋ ฅ [๋ฌธ์ ํ์ด] 1. DFS ํ์์ผ๋ก 1๋ฒ ๋ ธ๋์์ ์ถ๋ฐํ์ฌ ๊ฐ ๋ ธ๋๋ฅผ ํ์2. cnt๋ฅผ ๋์ ๊ฑฐ๋ฆฌ๋ก ์ ๋ฌํ๋ฉด์ res = max(res, cnt)๋ก ์ต๋๊ฐ ๊ฐฑ์ 3. ์๋ฐฉํฅ ๊ฐ์ ์ด๋ฏ๋ก from → to, to → from ๋ชจ๋ ์ ์ฅ* ์ฃผ์ํ ์ : ์๋ฃํ ์ค๋ฒํ๋ก์ฐ (๊ฒฐ๊ณผ๊ฐ์ long long์ผ๋ก ํด์ผ ํ๋ค) - ํ์ด ๊ณผ์ ์์ ์๋ก ๋ฐฐ์ด ๊ฒ : ๊ตฌ์กฐ ๋ถํด ์ ์ธ(structured binding)for (auto [next, d] : a[from]) { ...} ์ ๋ฌธ๋ฒ์ ์ฌ์ค์ ์๋์ ๊ฐ์ ๋์์ ์ํํ๋ค. fo..

[๋ฌธ์ ]๋ฐฑ์ค 17271 - ๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ์ค(Small) ์คํฌ์ ์์ ํด ์ ํํ N์ด๋ฅผ ์ฑ์ฐ๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ๋ค. ์ฌ์ฉํ ์ ์๋ ์คํฌ์ ๋ ๊ฐ์ง:A ์คํฌ: 1์ด ์๋ชจB ์คํฌ: M์ด ์๋ชจ๊ฐ ์คํฌ์ ๋ฌด์ ํ ์ฌ์ฉ ๊ฐ๋ฅํ๊ณ , ๊ฒฐ๊ณผ๋ 1,000,000,007๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํด์ผ ํ๋ค. [๋ฌธ์ ํ์ด]์ฌ์ฉํ ์๊ณ ๋ฆฌ์ฆ: ๋์ ๊ณํ๋ฒ (DP)์ฒ์์๋ ๋ชจ๋ ๊ฐ๋ฅํ ์คํฌ ์กฐํฉ์ DFS๋ก ์์ ํ์ํ๋ ๋ฐฉ์์ด ๋ ์ฌ๋์ง๋ง N์ด ์ต๋ 10,000์ด๊ธฐ ๋๋ฌธ์, ๋จ์ DFS๋ ์ค๋ณต ํธ์ถ์ด ๋ง์์ง๊ธฐ ๋๋ฌธ์ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ ๊ฒ ๊ฐ์์ DP๋ฅผ ์ด์ฉํ๋ค. ๋จ์ DFS๋ ์๊ฐ ์ด๊ณผ์ง๋ง, ๋ฉ๋ชจ์ด์ ์ด์ ์ ์ ์ฉํ DFS๋ ์ฌ์ค์ Top-Down DP๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. dp[ i ]: ์ด i์ด๋ฅผ ์ ํํ ์ฑ์ฐ๋ ..

[๋ฌธ์ ]๋ฐฑ์ค 17484 - ์ง์ฐ์ ๋ฌ ์ฌํ ๋ก๋ด์ ๋งจ ์ ์ค์ ์ด๋ ์นธ์์๋ ์์ ๊ฐ๋ฅ๋งค ํด๋ง๋ค โ, ↓, โ ๋ฐฉํฅ ์ค ํ๋๋ก ์ด๋๋จ, ๊ฐ์ ๋ฐฉํฅ์ ์ฐ์ํด์ ์ฌ์ฉํ ์ ์์nํ์ ๋๋ฌํ ๋๊น์ง์ ์ต์ ์ฐ๋ฃ ์๋น๋์ ๊ตฌํด์ผ ํจ [๋ฌธ์ ํ์ด]DFS๋ก ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ํ์ํ๊ณ ์์์ง๋ง, "๊ฐ์ ๋ฐฉํฅ์ ์ฐ์ํด์ ์ด๋ํ ์ ์๋ค"๋ ์ ์ฝ ์กฐ๊ฑด์ ๊ณ ๋ คํ์ง ๋ชปํจ.์ด๋ก ์ธํด ์กฐ๊ฑด์ ์๋ฐํ ๊ฒฝ๋ก๋ ํฌํจ๋์ด ์ ๋ต๋ณด๋ค ๋ ์์ ์๋ชป๋ ๊ฐ์ด ๊ฒฐ๊ณผ๋ก ์ถ๋ ฅ๋ ์ ์์.๊ฐ์ ๋ฐฉํฅ์ ์ฐ์ํด์ ์ฐ์ง ์๋๋ก prev_dir์ด๋ผ๋ ์ธ์๋ฅผ ์ถ๊ฐํด ์ด์ ๋ฐฉํฅ๊ณผ ๋น๊ต DFS๋ ์ค๋ณต ๊ฒฝ๋ก๊ฐ ๋ง์ ํจ์จ์ด ๋จ์ด์ง.๊ทธ๋์ dp[y][x][dir] = yํ x์ด์ dir ๋ฐฉํฅ์ผ๋ก ๋์ฐฉํ์ ๋ ์ต์ ์ฐ๋ฃ๋ก ์ ์ํ๋ฉด ์ค๋ณต ๊ฒฝ๋ก ์ ๊ฑฐ + ๋น ๋ฅธ ์ฐ์ฐ ๊ฐ๋ฅ...

[๋ฌธ์ ]๋ฐฑ์ค 2156 - ํฌ๋์ฃผ ์์ ํฌ๋์ฃผ ์ n๊ฐ๊ฐ ์ผ๋ ฌ๋ก ๋์ฌ ์๊ณ , ๊ฐ ์๋ง๋ค ํฌ๋์ฃผ์ ์์ด ์ฃผ์ด์ง๋ค.ํฌ๋์ฃผ๋ ์ฐ์์ผ๋ก 3์์ ๋ง์ค ์ ์๋ค.๋ง์ค ์ ์๋ ํฌ๋์ฃผ์ ์ต๋ ์์ ๊ตฌํ๋ผ. [๋ฌธ์ ํ์ด]์ ๊ทผ ๋ฐฉ๋ฒ: Dynamic Programmingdp[i]๋ฅผ i๋ฒ์งธ ์๊น์ง ๊ณ ๋ คํ์ ๋ ๋ง์ค ์ ์๋ ์ต๋ ํฌ๋์ฃผ ์์ด๋ผ๊ณ ์ ์ํ๋ค. i๋ฒ์งธ ํฌ๋์ฃผ์ ์์ a[i]์ด๋ค.์ ํ์ง๋ ์๋ ์ธ ๊ฐ์ง ์ค ํ๋์ด๋ค:ํ์ฌ ์์ ๋ง์์ง ์์ → dp[i - 1]ํ์ฌ ์๋ง ๋ง์ฌ (์ด์ ์์ ๋ง์์ง ์์) → dp[i - 2] + a[i]์ด์ ์๊ณผ ํ์ฌ ์ ๋ ๋ค ๋ง์ฌ (i-3๋ฒ์งธ๋ ๋ง์์ง ์์์ผ ํจ) → dp[i - 3] + a[i - 1] + a[i] ์ ํ์: dp[0] = a[0];dp[1] = a[0] + ..

[๋ฌธ์ ]๋ฐฑ์ค 16401 - ๊ณผ์ ๋๋ ์ฃผ๊ธฐ ์กฐ์นด M๋ช ์๊ฒ ๊ณผ์ N๊ฐ๋ฅผ ๋๋์ด ์ฃผ๋ ค๊ณ ํ๋ค. ๊ฐ ์กฐ์นด๋ ๋์ผํ ๊ธธ์ด์ ๊ณผ์ ํ ๊ฐ๋ง ๋ฐ๋๋ค.๊ณผ์๋ค์ ์๋ฅผ ์ ์๊ณ , ์กฐ์นด์ ์๋ณด๋ค ๊ณผ์์ ๊ฐ์๊ฐ ์ ์ ์๋ ์๋ค.๋ชจ๋ ์กฐ์นด์๊ฒ ๋์ผํ ๊ธธ์ด์ ๊ณผ์๋ฅผ ๋๋ ์ฃผ๋, ๊ทธ ๊ธธ์ด๋ฅผ ์ต๋๋ก ํ๋ ๊ฒ์ด ๋ชฉํ๋ค. [๋ฌธ์ ํ์ด]์ฌ์ฉํ ์๊ณ ๋ฆฌ์ฆ: ์ด๋ถ ํ์ (Binary Search)์ด ๋ฌธ์ ๋ '์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ต๋๊ฐ'์ ์ฐพ๋ Parametric Search(ํ๋ผ๋ฉํธ๋ฆญ ์์น) ๋ฌธ์ ๋ค.์ด๋ถ ํ์์ ํตํด ๋๋ ์ค ์ ์๋ ์ต๋ ๊ธธ์ด๋ฅผ ์ฐพ์์ผ ํ๋ค. [์์ค ์ฝ๋]#include using namespace std;int m, n, res, l, r, mid, mx, cnt;vector v;int main() { cin >> m >> ..

[๋ฌธ์ ]๋ฐฑ์ค 1783 - ๋ณ๋ ๋์ดํธ ์ฒด์คํ์ ํฌ๊ธฐ๊ฐ ์ฃผ์ด์ง๋ค: n x m์ด 4๊ฐ์ง ์ด๋ ๋ฐฉ๋ฒ๋ง ๊ฐ๋ฅํ๋ค:(−2, +1), (−1, +2), (+1, +2), (+2, +1)๋จ, ์ด๋ ํ์๊ฐ 4๋ฒ ์ด์์ด๋ฉด 4๊ฐ์ง ๋ฐฉํฅ ๋ชจ๋ ํ ๋ฒ์ฉ ์ฌ์ฉํด์ผ ํ๋ค.๋์ดํธ๋ ์ต๋ํ ๋ง์ ์นธ์ ๋ฐฉ๋ฌธํ๋ ค๊ณ ํ๋ค.๋ฐฉ๋ฌธํ ์ ์๋ ์นธ์ ์ต๋๊ฐ์ ๊ตฌํ๋ ๋ฌธ์ [๋ฌธ์ ํ์ด]์ด๋ ์ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ค. ์ด๋ ๋ฐฉ์์ด ์ผ๋ฐ์ ์ธ ๋์ดํธ์ ๋ฌ๋ฆฌ 4๊ฐ์ง๋ก ํ์ ๋๊ณ , ์๋ก๋ ์์ง์ผ ์ ์๊ธฐ ๋๋ฌธ์ ํ(n)์ ๊ฐ์ด ๋งค์ฐ ์ค์ํ๋ค.n == 1: ์์์ ๋ง ๋ฐฉ๋ฌธ ๊ฐ๋ฅ → ์ ๋ต์ 1n == 2: ์ด๋ ๊ฐ๋ฅํ ํํ๊ฐ ์ ํ๋์ด (+1, +2) ๋๋ (-1, +2)๋ง ๊ฐ๋ฅ. ์ฆ, ์ค๋ฅธ์ชฝ์ผ๋ก ๋ ์นธ, ์์๋๋ก ํ ์นธ.2์นธ์ ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ๋ฉด ํ๋ ์ด๋..

[๋ฌธ์ ]๋ฐฑ์ค 2437 - ์ ์ธ ํ๋์ ์์ ์ ์ ๋ฌด๊ฒ๋ฅผ ์ธก์ ํ ์ ์๋ ์ฌ๋ฌ ๊ฐ์ ์ถ๊ฐ ์ฃผ์ด์ง๋ค. ์ด๋, ์ฃผ์ด์ง ์ถ๋ค๋ก ์ธก์ ํ ์ ์๋ ๊ฐ์ฅ ์์ ์์ ์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ๋ค. ์๋ฅผ ๋ค์ด, ์ถ๋ค์ด {1, 1, 2, 5}์ผ ๋, 10๊น์ง๋ ๋ง๋ค ์ ์์ง๋ง 11์ ๋ง๋ค ์ ์๋ค. ์ด์ฒ๋ผ ๋๋ฝ๋ ์ต์์ ๋ฌด๊ฒ๋ฅผ ์ฐพ๋ ๊ฒ ํต์ฌ์ด๋ค. [๋ฌธ์ ํ์ด]์ด ๋ฌธ์ ๋ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ(Greedy Algorithm)์ผ๋ก ํด๊ฒฐํ ์ ์๋ค. ๊ฐ์ฅ ์์ ๋ฌด๊ฒ๋ถํฐ ๋ง๋ค ์ ์๋์ง ์ฐจ๋ก๋ก ํ์ธํ๋ฉด์, ์ธก์ ๊ฐ๋ฅํ ๋ฌด๊ฒ์ ๋ฒ์๋ฅผ ํ์ฅํ์๋ค. ์ ๋ ฅ๋ฐ์ ์ถ ๋ฌด๊ฒ๋ค์ ์ ๋ ฌํ๋ค.res ๋ฅผ 1๋ก ์ด๊ธฐํํ๋ค. res ๋ ์ง๊ธ๊น์ง ๋ง๋ค ์ ์๋ ๋ฌด๊ฒ ๋ฒ์ [1, res]๋ฅผ ์๋ฏธํ๋ค.์ถ์ ๋ฌด๊ฒ๋ฅผ ํ๋์ฉ ๋ณด๋ฉฐ,๋ง์ฝ ํ์ฌ ์ถ์ ๋ฌด๊ฒ๊ฐ res๋ณด๋ค ํฌ๋ฉด,..