Algorithm/BOJ


์ฌ์ ๋ณด์์ง๋ง ์๊ฐ๋ณด๋ค ๊น๋ค๋ก์ด ๋ฌธ์ ์๋ค. 0๋ถํฐ ์์ํด์ N๋ฒ์งธ ๊ฐ์ํ๋ ์๋ฅผ ์ฐพ๋ ๋ฌธ์ . ์ฐ์ ๋ฌธ์ ์๋ ๋์์๋ค์ํผ 0์ 0๋ฒ์งธ ๊ฐ์ํ๋ ์, 1์ 1๋ฒ์งธ ๊ฐ์ํ๋ ์์ด๋ฏ๋ก 10๋ฏธ๋ง์ ์ ๋ ฅ์ ์๊ธฐ ์์ ์ด n๋ฒ์งธ ๊ฐ์ํ๋ ์๊ฐ ๋๋ค. // 10๋ณด๋ค ์์ ์๋ ๋ฌด์กฐ๊ฑด ๊ฐ์ํ๋ ์ if(N < 10) { System.out.println(N); return; } ๊ทธ๋ฌ๋ฉด N์ด 10 ์ด์์ธ ์์ ๋ํด์๋ง ๋ช๋ฒ์งธ ๊ฐ์ํ๋ ์์ธ์ง ์๋์ง ํ์ธํ๋ฉด ๋๋ค. ์ฐ์ ์ด๋ค ์๊ฐ ๊ฐ์ํ๋ ์์ธ์ง ์๋์ง๋ฅผ ํ์ธํ๋ ์ฝ๋๊ฐ ํ์ํ๋ค. ๋๋ ์ผ์์๋ฆฌ๋ถํฐ ๋ง์ง๋ง์๋ฆฌ๊น์ง ์ซ์๊ฐ ์ปค์ง์ง ์์ผ๋ฉด false๊ฐ์, ์ ๋ถ ๋ค ์ปค์ง๋ ์ซ์์์ผ๋ฉด true๊ฐ์ ๋ฐํํ์๋ค. // num๊ฐ์ 10์ด์์ด๋ค. public static boolean is..


๊ทธ๋ฅ ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์ด์ง๋ง ๊ฐ์ ์ฑ๋ณ์ ๋ํ๊ต๋ ์ฐ๊ฒฐ๋๋ฉด ์๋๋ค. ๋ฐ๋ผ์ ๋ํ๊ต์ ์ฑ๋ณ์ ํ์ธํ ์ ์๋ ๋ฐฐ์ด์ ๋ง๋ค๊ณ , unionSet์ ํ ๋ ๋จผ์ ๋ํ๊ต ์ฑ๋ณ์ด ๊ฐ์ผ๋ฉด false๋ฅผ ๋ฐํํ๋ค. public static boolean unionSet(int x, int y) { if(gender[x] == gender[y]) return false;// ๊ฐ์ ์ฑ๋ณ์ ๋ํ๊ต์ธ ๊ฒฝ์ฐ๋ unionํ์ง ์๋๋ค. int xRoot = findSet(x); int yRoot = findSet(y); if(xRoot == yRoot) return false; parents[yRoot] = xRoot; return true; } ๊ฐ๋จํ ๋ฌธ์ ์๋ค...!! ์ฝ๋๋ ์๋์ ๊ฐ๋ค. public class BJ_146..


๋ฌธ์ ๋ฅผ ์ฝ๊ณ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ ๊ทผํด์ผ ๋ง๋ ๊ฑด์ง ๋ง์ด ๊ณ ๋ฏผํ๋ค. ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ → ์ ๋ ฅ์ ์ด๋ฏธ ์ฐ๊ฒฐ๋ ๊ฐ์ ๋ช ๊ฐ๊ฐ ์ฃผ์ด์ ธ ์๊ธฐ ๋๋ฌธ์ ์๋ก์ ์งํฉ์ ์ด์ฉํด์ผ ํ ๊ฑฐ ๊ฐ์. ํ์ง๋ง ์ด๋ค ๊ฐ์ ์ด ์กด์ฌํ๋ ์ง ์ ๋ณด๊ฐ ์์ผ๋ฏ๋ก ๊ฐ์ ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฌํ ์ ์๋ค. ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ → ์ด๋ฏธ ์ฐ๊ฒฐ๋ ์ ์ ๋ค์ ๊ฑฐ๋ฆฌ๋ฅผ 0, ์๋ ์ ์ ๋ค์ 2์ฐจ์ ์ขํ๊ณ์์ ๊ฑฐ๋ฆฌ๋ก ์ฒ๋ฆฌ / ์ด๋ฏธ ์ฐ๊ฒฐ๋ ์ ์ ๋ค์ด ์กด์ฌํ๋ฏ๋ก ์๋ก์ ์งํฉ์ ์ด์ฉํด๋ณผ ์๊ฐ์ด์๋ค. ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ์์ minEdge ๋ฐฐ์ด์ ์ ์ฅ ํธ๋ฆฌ์์ ๋ฐฉ๋ฌธํ์ง ์์ ์ ์ ๊น์ง์ ์ต์ ๊ฑฐ๋ฆฌ๋ฅผ ์ ์ฅํ๋ค. ํ์ง๋ง ์ ์ฅ ํธ๋ฆฌ์ ์ด๋ค ์ ์ ์ผ๋ก๋ถํฐ ์ต์์ธ์ง๋ ์ ์ ์๋ค. ์ ๋ ฅ์ผ๋ก ์ด๋ฏธ ์ฐ๊ฒฐ๋ ์ ์ ๋ค์ด ์กด์ฌํ๋๋ฐ ๋๋จธ์ง ์ ์ ๋ค์ด ์ ์ฐ๊ฒฐ๋ ์ ์ ๋ค์ union ํ๋ ค๋ฉด ์ด๋ค ์ ์ ์ผ๋ก๋ถํฐ ์ต์์ธ ..


์ ๋ ฅ์ ํํ๊ฐ ๊ฐ์ ์ ๋ณด๋ฅผ ์ฃผ๊ธฐ๋๋ฌธ์ ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์๊ฐํ๋ค. ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ๊ฐ์ฅ ์ฒ์ ๋ ์๊ฐ์ ์ด๋ค ๊ธฐ์ค์ผ๋ก ๋ ๊ฐ์ ๋ถ๋ฆฌ๋ ๋ง์๋ก ๋ถํ ํ ๊น...? ์๋ค. ๊ทธ๋์ ์ง๋ค์ ๋ถ๋ถ์งํฉ์ ๊ตฌํด์ผํ๋...? → ์ ๋ ฅ์ด ๋๋ฌด ์ปค์ ๋ฐฑํผ ์๊ฐ์ด๊ณผ์ด๊ณ ๊ฐ์ ๋ค์ ์ ๋ ฌํ๊ณ ๊ฐ์ฅ ์์ ๋ ๊ฐ์ ๊ฐ์ ์ ๋ ๊ฐ์ ๋ง์๋ก ์ก์๊น? → 1. ๋ ๊ฐ์ ๊ฐ์ ์ด ๊ฐ์ ์ง์ ๊ฐ๋ฆฌํฌ ์ ๋ ์๊ธฐ ๋๋ฌธ์ ์๋ ๋ฏ... ๋ฌธ์ ๋ฅผ ๋ค์ ํ ๋ฒ ์ดํด๋ณด๋ ๋ง์์๋ ์ง์ด ํ๋ ์ด์ ์์ด์ผ ํ๋ค.๊ฐ ๋์ ๋ค์ด์๋ค. ์ด ๋ง์ ๋ง์์๋ ์ง ํ๋๋ง ์์ผ๋ฉด ๋๊ฒ ๊ตฌ๋... ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ ๋ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ ๊ทธ ์ค์์ ์ฌ์ดํด์ด ์์๊ธฐ๋๋ก (์ ์ -1)๊ฐ์ ๊ฐ์ ๋ค์ ์ ํํ๋ฉด ๋ชจ๋ ์ ์ ๋ค์ด ์ด์ด์ง๋ค. ํ์ง๋ง ์ฌ๊ธฐ์ (์ ์ -2)๊ฐ์ ๊ฐ์ ๋ค์ ์ฐ๊ฒฐ..


๋ฉํฐํญ์ ํ๋ฌ๊ทธ ๋นผ๋ ํ์๋ฅผ ์ต์ํํ๋ ๋ฌธ์ !! ์ฒ์์ ์๊ฐํ ๋ก์ง ๋ฉํฐํญ์ ๋น์ด์๋ ์๋ฆฌ๊ฐ ์์ผ๋ฉด : ๋ฉํฐํญ์ ์ถ๊ฐ ๋ฉํฐํญ์ ๋น์ด์๋ ์๋ฆฌ๊ฐ ์์ผ๋ฉด ์ด๋ฏธ ๊ฝํ์๋ ๊ฒฝ์ฐ : ๋ฌด์ ๋ฉํฐํญ์ ๊ฝํ์๋ ๊ธฐ๊ธฐ๋ค์ ์ฌ์ฉ๋น๋๊ฐ ์ ์ผ ๋ฎ์ ๊ธฐ๊ธฐ๋ฅผ ๋บ๋ค. ํ์ง๋ง ์ด ๊ฒฝ์ฐ์๋ ์ ๋ ฅ์ด ์๋์ ๊ฐ์ผ๋ฉด 2 5 3 3 1 4 5 ๋ ๋ฒ์งธ๋ก ๋ค์ด์จ ๊ธฐ๊ธฐ3์ด 2-1๋ก ๋น ์ง๋ ๊ฒ ์๋ 1๋ฒ์ผ๋ก ๋น ์ง๊ฒ ๋๋ฏ๋ก ์ค๋ฅ... ๋ ๋ฒ์งธ๋ก ์๊ฐํ ๋ก์ง ๋ฉํฐํญ์ด ๋น์ด์์ง ์๊ณ ์ด๋ฏธ ๊ฝํ์๋ ๊ฒฝ์ฐ : ๋ฌด์ ๋ฉํฐํญ์ ๋น์ด์๋ ์๋ฆฌ๊ฐ ์์ผ๋ฉด : ๋ฉํฐํญ์ ์ถ๊ฐ ๋ฉํฐํญ์ ๋น์ด์๋ ์๋ฆฌ๊ฐ ์์ผ๋ฉด ๋ฉํฐํญ์ ๊ฝํ์๋ ๊ธฐ๊ธฐ๋ค์ ์ฌ์ฉ๋น๋๊ฐ ์ ์ผ ๋ฎ์ ๊ธฐ๊ธฐ๋ฅผ ๋บ๋ค. ํ์ง๋ง... ์ด ๊ฒฝ์ฐ์๋ ์ ๋ ฅ์ด ์๋์ ๊ฐ์ผ๋ฉด 2 7 2 3 1 2 1 2 3 3 3 ์ฒ์ ๊ธฐ๊ธฐ1์ด..


์์ฃผ์์ฃผ์์ฃผ ์ง์ฆ๋๊ฒ ํ๋ ๋ฌธ์ ..^^.. --๋ฆฌ๋ทฐ๋ ๋์ค์ ์ถ๊ฐ-- import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class BJ_11725 { static LinkedList[] node; // ์ธ์ ๋ฆฌ์คํธ๋ก ๊ฐ์ ๋ผ๋ฆฌ ์ฐ๊ฒฐ๋ ๋ ธ๋ ์ ๋ณด static int[] parentNode; // 2๋ถํฐ N๊น์ง ๋ถ๋ชจ๋ ธ๋ ์ ๋ณด static int N; // ์ ๋ ฅ๋ฐ๋ ์ public static void main(String[] arg..