๋ฐฐ์ ๋ Union-Find๋ฅผ ๋ณต์ตํ๊ธฐ ์ํด ํ์ด๋ดค์ต๋๋ค. ๋๋น๋ ์ ํ๋ฒ ๋์ด ๊ตฌํํ ํจ์๋ฅผ ์ต๋ํ ์ด์ฉํด๋ณด๋ ค๊ณ ํ์ต๋๋ค. 3๊ฐ ํจ์(getParent, unionParent, findParent) ๋ชจ๋ ์ด์ฉํ๊ณ ์ธ์์ ๋ถ๋ชจ ๋ ธ๋ ๋ฐฐ์ด์ ์ ๋ฌํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋๋ ์๊ฐ์ด๊ณผ ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์๊ฐ์ด๊ณผ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด 1) ํจ์ ํ๋๋ฅผ ์ค์ด๊ณ 2) ์ธ์๋ฅผ ํตํด ๋ถ๋ชจ ๋ ธ๋ ๋ฐฐ์ด์ ์ ๋ฌํ๋ ๋์ ์ ์ญ๋ณ์๋ก ์ค์ ํ๋ ํต๊ณผํ์ต๋๋ค. (getParent, unionParent ์ฌ์ฉ) ์๊ฐ ์ด๊ณผ ๋๋ ์ฝ๋ #include using namespace std; int n, m; int getParent(int parent[], int x) { if(parent[x] == x) return x; return pa..
Union-Find๋ ๊ทธ๋ํ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋์ ๋๋ค. ํฉ์งํฉ ์ฐพ๊ธฐ ๋๋ ์๋ก์ ์งํฉ(Disjoint-Set) ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ๋ถ๋ฆฝ๋๋ค. ๊ฐ์ ๊ทธ๋ํ ๋ด์ ํ์ธํ๊ณ ์ถ์ ๋ ธ๋๋ค์ด ์๋์ง ํ์ธํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. Union-Find๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์๋ ๋ถ๋ชจ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐฐ์ด์ด ์กด์ฌํด์ผ ํฉ๋๋ค. ์ฒ์์๋ ๋ชจ๋ ๊ฐ์ด ์๊ธฐ ์์ ์ ๊ฐ๋ฆฌํค๋๋ก ๋ง๋ญ๋๋ค. ํ์ ๊ทธ๋ฆผ์ผ๋ก ๊ทธ๋ฆฌ๋ฉด ์๋์ ๊ฐ์ต๋๋ค. ๋ ธ๋ 1 2 3 4 5 6 7 8 ๋ ธ๋์ ๋ถ๋ชจ 1 2 3 4 5 6 7 8 ์ดํ 2๊ฐ์ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ฉด ์ฐ๊ฒฐ๋ ๋ ธ๋ ์ค ๋ ์์ ๊ฐ์ผ๋ก ๋ถ๋ชจ ๋ ธ๋ ๋ฐฐ์ด ๊ฐ์ ๋ฐ๊ฟ์ค๋๋ค. ๋ง์ฝ 1๊ณผ 2๊ฐ ์ฐ๊ฒฐ๋์๋ค๊ณ ํ๋ฉด 2์ ๋ถ๋ชจ ๋ ธ๋ ์๋์ ๊ฐ์ด 1๋ก ๋ฐ๋๋๋ค. ๋ถ๋ชจ์ ๊ฐ์ด ๊ฐ์์ง์ผ๋ก์จ ๋ ธ๋๋ค์ ํฉ์น ์ ์์ต๋๋ค. (Union ์๊ณ ..
์ฝ๋ฉํ ์คํธ ํ๊ธฐ ์ข ๋ง์ด ์ง๋๊ธด ํ์ง๋ง 2022๋ 5์ 1์ผ์ ์์๋ ์ผ์ฑSDS ์ฝ๋ฉํ ์คํธ ํ๊ธฐ๋ฅผ ์์ฑํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ํ๊ธฐ๋ผ๊ธฐ๋ณด๋ค๋ ์ด๋ป๊ฒ ์ค๋นํ์๋์ง๊ฐ ๋ ๋ง๋ ๊ฒ ๊ฐ์ง๋ง ์ผ๋จ ๊ธฐ๋กํด๋๋ฉด ๋ฆฌ๋ง์ธ๋ํ๋ฉด์ ๋ค์ ๊ณต๋ถํ ๋ง์์ ์ก์ ์ ์์ ๊ฒ ๊ฐ์์์ :) ์ ์๋ ค์ง ๋๋ก ์ผ์ฑ ์ฝ๋ฉํ ์คํธ๋ 3์๊ฐ ๋์ 2๋ฌธ์ ๊ฐ ์ฃผ์ด์ง๋๋ค! ์ ๋ 1๋ฌธ์ ๋ง ํฌ๋ค...๋ผ๋ ๋ง์๊ฐ์ง์ผ๋ก 3์๊ฐ ๋์ 1๋ฌธ์ ๋ฅผ ์ด์ฌํ ํ์์ต๋๋ค. ์ ๋ ์คํ ์๊ฐ์ด์๋๋ฐ ๋น์ฐํ ์ฒซ ๋ฒ์งธ ๋ฌธ์ ๊ฐ ๋ ์ฝ๊ฒ ์ง ์๊ฐํด์ ๋จผ์ ์ด์ด์ ํ์์ด์. ๊ทผ๋ฐ ๋ค ํ๊ณ ๋ ๋ฒ์งธ ๋ฌธ์ ์ด์ด๋ณด๋ ๋๋ฒ์งธ ๋ฌธ์ ๊ฐ ๋ ์ฌ์ ๋... ๋ฌธ์ ์คํ ์๊ฐ์ ๋ฐ๋ผ์๋ ํฉ๊ฒฉ ์ฌ๋ถ๊ฐ ๋ฌ๋ผ์ง๋ค๋ ๋ง์ด ์์ด์ ์ฝ์ฌ๋ฆฌ ๋๋ฒ์งธ ๋ฌธ์ ๋ฅผ ์ด์ด๋ณด์ง ๋ชปํ์ด์. ์ฒซ ๋ฒ์งธ ๋ฌธ์ ๋ฅผ ์ญ ์ฝ์ด๋ณด๋๋ฐ ๋ฌธ์ ์ดํด๋ ..
15683๋ฒ: ๊ฐ์ ์คํํธ๋งํฌ์ ์ฌ๋ฌด์ค์ 1×1ํฌ๊ธฐ์ ์ ์ฌ๊ฐํ์ผ๋ก ๋๋์ด์ ธ ์๋ N×M ํฌ๊ธฐ์ ์ง์ฌ๊ฐํ์ผ๋ก ๋ํ๋ผ ์ ์๋ค. ์ฌ๋ฌด์ค์๋ ์ด K๊ฐ์ CCTV๊ฐ ์ค์น๋์ด์ ธ ์๋๋ฐ, CCTV๋ 5๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋ค. ๊ฐ CCTV๊ฐ ๊ฐ www.acmicpc.net #include #include #include using namespace std; #define INF ((int)1e9) struct cctv { int r, c, num, dir; }; int N, M, ans; int map[8][8]; static int dr[4] = { -1, 0, 1, 0 }; static int dc[4] = { 0, 1, 0, -1 }; vector cctvs, cctv_5; void CountZero() { int ..
https://www.acmicpc.net/problem/12100 12100๋ฒ: 2048 (Easy) ์ฒซ์งธ ์ค์ ๋ณด๋์ ํฌ๊ธฐ N (1 ≤ N ≤ 20)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๊ฒ์ํ์ ์ด๊ธฐ ์ํ๊ฐ ์ฃผ์ด์ง๋ค. 0์ ๋น ์นธ์ ๋ํ๋ด๋ฉฐ, ์ด์ธ์ ๊ฐ์ ๋ชจ๋ ๋ธ๋ก์ ๋ํ๋ธ๋ค. ๋ธ๋ก์ ์ฐ์ฌ ์๋ ์๋ 2 www.acmicpc.net #include using namespace std; enum { UP, DOWN, LEFT, RIGHT }; struct board_t { int b[20][20]; }; int N; int maxVal; void moveTo(board_t& board, int dir) { for (int i = 0; i < N; i++) { bool isPossible = true..
https://www.acmicpc.net/problem/14501 14501๋ฒ: ํด์ฌ ์ฒซ์งธ ์ค์ ๋ฐฑ์ค์ด๊ฐ ์ป์ ์ ์๋ ์ต๋ ์ด์ต์ ์ถ๋ ฅํ๋ค. www.acmicpc.net ์์ ์ ํ์๋ ๋ฌธ์ ์ธ๋ฐ ์ง๊ธ ๋ค์๋ณด๋ DFS๋ก๋ ํ ์ ์์ ๊ฒ ๊ฐ๋ค์! #include #include using namespace std; #define MAXN 15 int N; // N+1์ผ์ ํด์ฌ int T[MAXN + 5]; // ์๋ด ์๋ฃํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ๊ธฐ๊ฐ int P[MAXN + 5]; // ์๋ด ํ์ ๋ ๋ฐ์ ์ ์๋ ๊ธ์ก int C[MAXN + 5]; int sol; void InputData(void) { cin >> N; for (int i = 1; i > T[i] >> P[i]; } } int max(int a,..