(Graph)Wedding
Last updated
Was this helpful?
Last updated
Was this helpful?
๋ฌธ์ ์ค๋ช
์ ๊ทผ ๋ฐฉ๋ฒ - ์น๊ตฌ ๊ด๊ณ๋ฅผ ๋ฆฌ์คํธ๋ก ๊ตฌํํ๋ค. - 1์ ์ธ์ ๋ ธ๋์ 1์ ์ธ์ ๋ ธ๋์ ์ธ์ ๋ ธ๋ ๊ฐฏ์๋ง ์ธ์ฃผ๊ธฐ ๋๋ฌธ์ BFS/DFS๋ ๋ถํ์ํ๋ค.
ํ๋ฆฐ ์ด์ ์ด๋ํ ์น๊ตฌ๋ฅผ ์นด์ดํ ํ ๋ ์ค๋ณต ์ฒดํฌ(๋ฐฉ๋ฌธ ์ฒดํฌ)๋ฅผ ํด์ฃผ์ด์ผํ๋๋ฐ ํด์ฃผ์ง ์์๋ค.
Solution ์ฐ๋ฆฌ๋ 1๋ฒ์ ์น๊ตฌ i์ i์ ์น๊ตฌ๋ง ๊ด์ฌ์๊ธฐ ๋๋ฌธ์ 2์ฐจ์ ๋ฐฐ์ด๋ก ๊ด๊ณ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ์ข๋ค๊ณ ํ ์ ์๋ค!!!๐ =>arr[1][i] == 1: ์น๊ตฌ ์ด๋ if(!v[i]) ์ด๋ฉด i์ด๋. arr[i][j] == 1 && !v[j] : ์น๊ตฌ์ ์น๊ตฌ ์ด๋ 1. 2์ฐจ์ ๋ฐฐ์ด์ ์น๊ตฌ ๊ด๊ณ ์ ์ฅํ๋ค. arr[i][j] : i์ j๊ฐ ์น๊ตฌ.(์๋ฏธํด์์ด ๋ ์ง๊ด์ ์ด๋ค!) arr[1][i] = 1 : 1๊ณผ i๊ฐ ์น๊ตฌ๋ผ๋ ์๋ฏธ! i๋ฒ ์น๊ตฌ๋ฅผ ์ด๋ํ๋ฉด i๋ฒ ์น๊ตฌ j๋ ์ด๋ํ๋ฏ๋ก arr[i][j] = 1์ด๋ฉด j๋ ์ด๋ํ๋ค!
2. ์ด๋ฏธ ์ด๋ํ ์น๊ตฌ์ธ์ง ํ์ธํ๊ธฐ ์ํด boolean ๋ฐฐ์ด ํ์! ์ด๋ํ๊ธฐ ์ ์ ์ค๋ณต์ฒดํฌํ๊ณ ๋ ํ์ ํด์ค๋ค!
๋๋ ์ ๋ฆฌ์คํธ๋ก ๊ตฌํํ๋ ๊ฒ๋ณด๋ค ์ด ๋ฌธ์ ์ ๊ฒฝ์ฐ 2์ฐจ์ ๋ฐฐ์ด๋ก ์น๊ตฌ ๊ด๊ณ๋ฅผ ์ ์ฅํด์ ์ฒ๋ฆฌํด์ฃผ๋ ๊ฒ์ด ๋ ๋น ๋ฅด๊ณ ๊ฐ๊ฒฐํ ๊ฒ ๊ฐ๋ค.
1์ ์น๊ตฌ ์ด๋ํ๋ ๋ถ๋ถ์์ if(friends[1][i] == 1 && !visit[i]) ์ด๋ ๊ฒ ์กฐ๊ฑด๋ฌธ์ ๊ฑธ์ด์ i๋ฅผ ์ด๋ํ๋ฉด ๋ ๊ฒ ๊ฐ์ง๋ง ์๋๋ค. ์๋ํ๋ฉด ์ด ์กฐ๊ฑด๋ฌธ์ ์๋์ i์ ์น๊ตฌ๋ ์ด๋ํ๋ ๋ถ๋ถ๋ ํฌํจํ๋ ์กฐ๊ฑด๋ฌธ์ธ๋ฐ ์กฐ๊ฑด๋ฌธ์ ์ ๋ ๊ฒ ๊ฑธ์ด๋ฒ๋ฆฌ๋ฉด 1์ ์น๊ตฌ 2์ด๋(visit[2] = true) 2์ ์น๊ตฌ 3์ด๋(visit[3] = true) 1์ ์น๊ตฌ 3 ์ฐจ๋ก์์ 3์ ์ด๋ํ์ง ์๋๋ผ๋ 3์ ์น๊ตฌ 4(์น๊ตฌ์ ์น๊ตฌ)๋ฅผ ์ด๋ํ๋ ๋ถ๋ถ์ ์คํ๋์ด์ผํ๋๋ฐ 2๊ฐ์ง ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์์ ์ ์ฒด๊ฐ ์คํ๋์ง ์์์ ์ค๋ต์ด ๋์ค๊ฒ ๋๋ค!