๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (208)
๐ป
๋ฌธ์ ๊ณ๋จ ์ค๋ฅด๊ธฐ ๊ฒ์์ ๊ณ๋จ ์๋ ์์์ ๋ถํฐ ๊ณ๋จ ๊ผญ๋๊ธฐ์ ์์นํ ๋์ฐฉ์ ๊น์ง ๊ฐ๋ ๊ฒ์์ด๋ค. ๊ณผ ๊ฐ์ด ๊ฐ๊ฐ์ ๊ณ๋จ์๋ ์ผ์ ํ ์ ์๊ฐ ์ฐ์ฌ ์๋๋ฐ ๊ณ๋จ์ ๋ฐ์ผ๋ฉด ๊ทธ ๊ณ๋จ์ ์ฐ์ฌ ์๋ ์ ์๋ฅผ ์ป๊ฒ ๋๋ค. ์๋ฅผ ๋ค์ด ์ ๊ฐ์ด ์์์ ์์๋ถํฐ ์ฒซ ๋ฒ์งธ, ๋ ๋ฒ์งธ, ๋ค ๋ฒ์งธ, ์ฌ์ฏ ๋ฒ์งธ ๊ณ๋จ์ ๋ฐ์ ๋์ฐฉ์ ์ ๋๋ฌํ๋ฉด ์ด ์ ์๋ 10 + 20 + 25 + 20 = 75์ ์ด ๋๋ค. ๊ณ๋จ ์ค๋ฅด๋ ๋ฐ๋ ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ด ์๋ค. ๊ณ๋จ์ ํ ๋ฒ์ ํ ๊ณ๋จ์ฉ ๋๋ ๋ ๊ณ๋จ์ฉ ์ค๋ฅผ ์ ์๋ค. ์ฆ, ํ ๊ณ๋จ์ ๋ฐ์ผ๋ฉด์ ์ด์ด์ ๋ค์ ๊ณ๋จ์ด๋, ๋ค์ ๋ค์ ๊ณ๋จ์ผ๋ก ์ค๋ฅผ ์ ์๋ค. ์ฐ์๋ ์ธ ๊ฐ์ ๊ณ๋จ์ ๋ชจ๋ ๋ฐ์์๋ ์ ๋๋ค. ๋จ, ์์์ ์ ๊ณ๋จ์ ํฌํจ๋์ง ์๋๋ค. ๋ง์ง๋ง ๋์ฐฉ ๊ณ๋จ์ ๋ฐ๋์ ๋ฐ์์ผ ํ๋ค. ๋ฐ๋ผ์ ์ฒซ ๋ฒ์งธ ๊ณ๋จ์ ..
๋ฌธ์ ๋ํ์ด๋ ๋๋ฌด ์กฐ๊ฐ์ 5๊ฐ ๊ฐ์ง๊ณ ์๋ค. ๋๋ฌด ์กฐ๊ฐ์๋ 1๋ถํฐ 5๊น์ง ์ซ์ ์ค ํ๋๊ฐ ์ฐ์ฌ์ ธ ์๋ค. ๋, ๋ชจ๋ ์ซ์๋ ๋ค์ฏ ์กฐ๊ฐ ์ค ํ๋์๋ง ์ฐ์ฌ ์๋ค. ๋ํ์ด๋ ๋๋ฌด ์กฐ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์ณ์ 1, 2, 3, 4, 5 ์์๋ก ๋ง๋ค๋ ค๊ณ ํ๋ค. ์ฒซ ๋ฒ์งธ ์กฐ๊ฐ์ ์๊ฐ ๋ ๋ฒ์งธ ์๋ณด๋ค ํฌ๋ค๋ฉด, ๋์ ์์น๋ฅผ ์๋ก ๋ฐ๊พผ๋ค. ๋ ๋ฒ์งธ ์กฐ๊ฐ์ ์๊ฐ ์ธ ๋ฒ์งธ ์๋ณด๋ค ํฌ๋ค๋ฉด, ๋์ ์์น๋ฅผ ์๋ก ๋ฐ๊พผ๋ค. ์ธ ๋ฒ์งธ ์กฐ๊ฐ์ ์๊ฐ ๋ค ๋ฒ์งธ ์๋ณด๋ค ํฌ๋ค๋ฉด, ๋์ ์์น๋ฅผ ์๋ก ๋ฐ๊พผ๋ค. ๋ค ๋ฒ์งธ ์กฐ๊ฐ์ ์๊ฐ ๋ค์ฏ ๋ฒ์งธ ์๋ณด๋ค ํฌ๋ค๋ฉด, ๋์ ์์น๋ฅผ ์๋ก ๋ฐ๊พผ๋ค. ๋ง์ฝ ์์๊ฐ 1, 2, 3, 4, 5 ์์๊ฐ ์๋๋ผ๋ฉด 1 ๋จ๊ณ๋ก ๋ค์ ๊ฐ๋ค. ์ฒ์ ์กฐ๊ฐ์ ์์๊ฐ ์ฃผ์ด์ก์ ๋, ์์น๋ฅผ ๋ฐ๊ฟ ๋ ๋ง๋ค ์กฐ๊ฐ์ ์์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ..
๋ฌธ์ ์ด๋ฆฐ ํ ๋ํด์ ์์น ๊ณต๋ถ๋ฅผ ์ข์ํ๋ค. ํ ๋ํด์ ๋จผ์ ์ฌ๋ฌ ๋๊ทธ๋ผ๋ฏธ์ ๋๊ทธ๋ผ๋ฏธ ๋ ๊ฐ๋ฅผ ์ฐ๊ฒฐํ๋ ์ง์ ๋ค ๋ง์ผ๋ก ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๊ณ (๋ชจ๋ ๋๊ทธ๋ผ๋ฏธ๋ค ์ฌ์ด์ ์ง์ ์ด ์์ ํ์๋ ์๋ค), ์ฐ๊ฒฐ๋ ๋ ๋๊ทธ๋ผ๋ฏธ๋ ์๋ก ์์ด ๋ค๋ฅด๊ฒ ๋๋๋ก ์์ ์น ํ๊ณ ์ ํ๋ค. ์ด ๊ทธ๋ฆผ์ ์์น ํ๋๋ฐ ํ์ํ ์ต์์ ์์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ๋ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ํ ๋ํด์ 2 ๊ฐ์ง ์์์ผ๋ก ์์น ์ด ๊ฐ๋ฅํ์ง์ ์ฌ๋ถ๋ง์ ์๊ณ ์ถ์ดํ๋ค. ๋๊ทธ๋ผ๋ฏธ๋ค์ ๋ฒํธ์ ๋๊ทธ๋ผ๋ฏธ๋ค์ด ์๋ก ์ฐ๊ฒฐ๋ ์ง์ ์ ๋ํ ์ ๋ณด๊ฐ ์ฃผ์ด์ก์ ๋, ์ด ๋๊ทธ๋ผ๋ฏธ๋ค์ด 2 ๊ฐ์ง ์์์ผ๋ก ์์น ์ด ๊ฐ๋ฅํ์ง ์์๋ด์. ์ ๋ ฅ ์ ๋ ฅ์ ์ฒซ ์ค์๋ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T ๊ฐ ์ฃผ์ด์ง๋ค. ๊ทธ ๋ค์ ์ค๋ถํฐ ๊ฐ ํ ์คํธ ์ผ์ด์ค์ ๋ํด ๋๊ทธ๋ผ๋ฏธ์ ๊ฐ์ n(n n >> m; bool cir[1001][1001]..
๋ฌธ์ N๊ฐ์ ์ ์๋ก ์ด๋ฃจ์ด์ง ์์ด์ด ์์ ๋, ํฌ๊ธฐ๊ฐ ์์์ธ ๋ถ๋ถ์์ด ์ค์์ ๊ทธ ์์ด์ ์์๋ฅผ ๋ค ๋ํ ๊ฐ์ด S๊ฐ ๋๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ์ ์์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ N๊ณผ ์ ์ S๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) ๋์งธ ์ค์ N๊ฐ์ ์ ์๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์์ ์ ๋๊ฐ์ 100,000์ ๋์ง ์๋๋ค. ์ถ๋ ฅ ์ฒซ์งธ ์ค์ ํฉ์ด S๊ฐ ๋๋ ๋ถ๋ถ์์ด์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค. ์์ ์ ๋ ฅ1 5 0 -7 -3 -2 5 8 ์์ ์ถ๋ ฅ1 1 ์๊ฐ ์ด ๋ฌธ์ ์ ๊ฒฝ์ฐ๋ n์ด 20๊น์ง์ด๋ฏ๋ก ์ฌ๊ทํจ์๋ก ํ๋ฉด ๋ ๊ฒ ๊ฐ์๋ค. ์ฌ๊ทํธ์ถ๋๋ ๊ณผ์ ์ ๊ตฌํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. ์ธ๋ฑ์ค๋ฅผ ์ฆ๊ฐ์ํค๋ฉด์, ํด๋น ์์๋ฅผ sum์ ๋ํ๊ฑฐ๋ ํน์ ๋ํ์ง ์๊ฑฐ๋ ์ด๋ฏ๋ก ..
๋๋น์ฐ์ ํ์(BFS= Breadth First Search) ๋ ๋๋น๋ฅผ ์ฐ์ ์ผ๋ก ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํ(Queue)๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํฉ๋๋ค. 1. ํ์ ์์ ๋ ธ๋๋ฅผ ํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋ฅผ ํฉ๋๋ค 2. ํ์์ ๋ ธ๋๋ฅผ ๊บผ๋ด ํด๋น ๋ ธ๋์ ์ธ์ ๋ ธ๋ ์ค์์ ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋๋ค์ ๋ชจ๋ ํ์ ์ฝ์ ํ๊ณ , ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋ฅผ ํฉ๋๋ค . 3. 2๋ฒ์ ๊ณผ์ ์ ๋ ์ด์ ์ํํ ์ ์์ ๋๊น์ง ๋ฐ๋ณตํฉ๋๋ค. ๋๋น ์ฐ์ ํ์์ ํ(Queue)์๋ฃ๊ตฌ์กฐ์ ๊ธฐ์ดํ๋ค๋ ์ ์์ ๊ตฌํ์ด ๊ฐ๋จํฉ๋๋ค. ์ค์ ๋ก ๊ตฌํํจ์ ์์ด ํ STL์ ์ฌ์ฉํ๋ฉด ์ข์ผ๋ฉฐ ํ์์ ์ํํจ์ ์์ด์ O(N)์๊ฐ์ด ์์๋ฉ๋๋ค. ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ ์ค์ ์ํ ์๊ฐ์ DFS๋ณด๋ค ์ข์ ํธ์ ๋๋ค. #include #include #define INF 999999999 ..
๊น์ด ์ฐ์ ํ์(DFS=Depth First Search) ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ฒด ๋ ธ๋๋ฅผ ๋งน๋ชฉ์ ์ผ๋ก ํ์ํ๊ณ ์ ํ ๋ ์ฌ์ฉํฉ๋๋ค. ๊น์ด ์ฐ์ ํ์์ ์คํ(Stack) ์๋ฃ๊ตฌ์กฐ์ ๊ธฐ์ดํฉ๋๋ค. 1. ํ์ ์์ ๋ ธ๋๋ฅผ ์คํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋ฅผ ํฉ๋๋ค. 2. ์คํ์ ์ต์๋จ ๋ ธ๋์๊ฒ ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋ ธ๋๊ฐ ํ๋๋ผ๋ ์์ผ๋ฉด ๊ทธ ๋ ธ๋๋ฅผ ์คํ์ ๋ฃ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋ฅผ ํฉ๋๋ค. ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋ ธ๋๊ฐ ์์ผ๋ฉด ์คํ์์ ์ต์๋จ ๋ ธ๋๋ฅผ ๊บผ๋ ๋๋ค. 3. 2๋ฒ ๊ณผ์ ์ ๋ ์ด์ ์ํํ ์ ์์ ๋๊น์ง ๋ฐ๋ณตํฉ๋๋ค. #include #include #define MAX_SIZE 1001 typeder struct{ int index; struct Node *next; } Node; Node** a; int n, m, c[MAX_SIZE..
๊ทธ๋ํ๋ ์ฌ๋ฌผ์ ์ ์ (Vertex)๊ณผ ๊ฐ์ (Edge)์ผ๋ก ๋ํ๋ด๊ธฐ ์ํ ๋๊ตฌ์ ๋๋ค. ๊ทธ๋ํ๋ 2๊ฐ์ง ๋ฐฉ์์ผ๋ก ๊ตฌํํ ์ ์์ต๋๋ค. 1) ์ธ์ ํ๋ ฌ(Adjacency Matrix) : 2์ฐจ์ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๋ฐฉ์ 2) ์ธ์ ๋ฆฌ์คํธ(Adjacency List) : ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์ ๋ฌด๋ฐฉํฅ ๋น๊ฐ์ค์น ๊ทธ๋ํ์ ์ธ์ ํ๋ ฌ - ๋ชจ๋ ๊ฐ์ ์ด ๋ฐฉํฅ์ฑ์ ๊ฐ์ง์ง ์๋ ๊ทธ๋ํ๋ฅผ ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ๋ผ๊ณ ํฉ๋๋ค. - ๋ชจ๋ ๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ๋ฅผ ๋น๊ฐ์ค์น ๊ทธ๋ํ๋ผ๊ณ ํฉ๋๋ค. - ๋ฌด๋ฐฉํฅ ๋น๊ฐ์ค์น ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ก์๋ ์ฐ๊ฒฐ๋์ด ์๋ ์ํฉ์ ์ธ์ ํ๋ ฌ๋ก ์ถ๋ ฅํ ์ ์์ต๋๋ค. #include int a[1001][1001]; int n,m; int main(void){ scanf("%d %d", &n, &m); //๊ฐ์ ์ ๊ฐ์ for..
๋ฌธ์ ๋ฐฉํฅ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ง๋ฉด ์ฃผ์ด์ง ์์์ ์์ ๋ค๋ฅธ ๋ชจ๋ ์ ์ ์ผ๋ก์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋จ, ๋ชจ๋ ๊ฐ์ ์ ๊ฐ์ค์น๋ 10 ์ดํ์ ์์ฐ์์ด๋ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ์ ์ ์ ๊ฐ์ V์ ๊ฐ์ ์ ๊ฐ์ E๊ฐ ์ฃผ์ด์ง๋ค. (1≤V≤20,000, 1≤E≤300,000) ๋ชจ๋ ์ ์ ์๋ 1๋ถํฐ V๊น์ง ๋ฒํธ๊ฐ ๋งค๊ฒจ์ ธ ์๋ค๊ณ ๊ฐ์ ํ๋ค. ๋์งธ ์ค์๋ ์์ ์ ์ ์ ๋ฒํธ K(1≤K≤V)๊ฐ ์ฃผ์ด์ง๋ค. ์ ์งธ ์ค๋ถํฐ E๊ฐ์ ์ค์ ๊ฑธ์ณ ๊ฐ ๊ฐ์ ์ ๋ํ๋ด๋ ์ธ ๊ฐ์ ์ ์ (u, v, w)๊ฐ ์์๋๋ก ์ฃผ์ด์ง๋ค. ์ด๋ u์์ v๋ก ๊ฐ๋ ๊ฐ์ค์น w์ธ ๊ฐ์ ์ด ์กด์ฌํ๋ค๋ ๋ป์ด๋ค. u์ v๋ ์๋ก ๋ค๋ฅด๋ฉฐ w๋ 10 ์ดํ์ ์์ฐ์์ด๋ค. ์๋ก ๋ค๋ฅธ ๋ ์ ์ ์ฌ์ด์ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ์ด ์กด์ฌํ ์๋ ์์์ ์ ์ํ๋ค. ์ถ๋ ฅ ์ฒซ์งธ ์ค๋ถํฐ V๊ฐ์ ์ค..