(0) ๊ทธ๋ํ๋?
a. ์ ์
๊ฐ์ ๋ด๊ณ ์๋ ์ ์ (Vertex)์ ๊ทธ ์ ์ ๋ค์ ์๋ ๊ฐ์ (Edge)์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ ์๋ฃ๊ตฌ์กฐ
b. ๊ทธ๋ํ ๊ด๋ จ ์ฉ์ด
์ฉ์ด | ๋ป |
---|---|
์ ์ (Vertex or Node) | ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณณ |
๊ฐ์ (Edge) | ์ ์ ๊ณผ ์ ์ ์ ์๋ ์ |
์ธ์ ํ๋ค. | ์ ์ A์ B๊ฐ ๊ฐ์ ์ผ๋ก ์ด์ด์ ธ ์์ผ๋ฉด, ์ ์ A์ B๋ ์๋ก ์ธ์ ํ๋ค. ๋ผ๊ณ ํ๋ค. ์ธ์ ์ ์ : ํ๋์ ์ ์ A์ ๊ฐ์ ์ผ๋ก ์ด์ด์ ธ ์๋ ์ ์ ๋ค์ ์ธ์ ์ ์ ์ด๋ผ๊ณ ํ๋ค. ์์ ์์์์ B๋ A์ ์ธ์ ์ ์ ์ด๋ค. |
์ฐจ์ | ํ๋์ ์ ์ A์ ์ฐ๊ฒฐ๋ ๊ฐ์ ์ ๊ฐ์์ด๋ค. a์ ์์์์ ์ ์ 2์ ์ฐจ์๋ 3์ด๊ณ ์ ์ 4์ ์ฐจ์๋ 4์ด๋ค. ์ง์ ์ฐจ์: ๋ฐฉํฅ์ด ์๋ ๊ทธ๋ํ์์ ์ธ๋ถ๋ก๋ถํฐ ๋ค์ด์ค๋ ๊ฐ์ ์ ๊ฐ์๋ฅผ ๋งํ๋ค. ์ง์ถ ์ฐจ์: ๋ฐฉํฅ์ด ์๋ ๊ทธ๋ํ์์ ์ธ๋ถ๋ก ๋ป์ด๋๊ฐ๋ ๊ฐ์ ์ ๊ฐ์๋ฅผ ๋งํ๋ค. |
c. ๊ทธ๋ํ์ ์ข ๋ฅ
๋ฌด๋ฐฉํฅ ๊ทธ๋ํ: ๊ฐ์ ์ ๋ฐฉํฅ์ด ์๋ ๊ทธ๋ํ
๋ฐฉํฅ ๊ทธ๋ํ: ๊ฐ์ ์ ๋ฐฉํฅ์ด ์๋ ๊ทธ๋ํ
๊ฐ์ค์น ๊ทธ๋ํ: ๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ
์์ ๊ทธ๋ํ: ๋ชจ๋ ์ ์ ์ด ์๋ก ์ฐ๊ฒฐ๋ ๊ทธ๋ํ
์ฌ์ง ์ถ์ฒ: ๋ธ๋ก๊ทธ
(1) ์ธ์ ํ๋ ฌ
์ถ๋ฐ์ ์ ์ ๋ฒํธ๋ฅผ ํ, ๋์ฐฉ์ ์ ์ ๋ฒํธ๋ฅผ ์ด์ ์ ์ฅํ์ฌ ๊ทธ๋ํ์ ๊ฐ์ ์ 2์ฐจ์ ๋ฐฐ์ด
๋ก ๋ํ๋ด๋ ๋ฐฉ๋ฒ์ ๋งํ๋ค.
๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ๋ฅผ ์ธ์ ํ๋ ฌ๋ก ๊ตฌํ
: ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด 1์ ์ ์ฅํ์ฌ ๋ ์ ์ ์ฌ์ด์ ๊ฐ์ ์ด ์์์ ๊ธฐ๋กํ๋ค.
๊ฐ์ค์น๊ฐ ์๋๊ทธ๋ํ๋ฅผ ์ธ์ ํ๋ ฌ๋ก ๊ตฌํ
: [์ถ๋ฐ ์ ์ ] [๋์ฐฉ ์ ์ ] = ๊ฐ์ค์น
ํํ๋ก ์ธ์ ํ๋ ฌ์ ๊ฐ์ผ๋ก ๊ฐ์ค์น๋ฅผ ์ ์ฅํ๋ค.
์ธ์ ํ๋ ฌ๋ก ๊ตฌํํด์ ๋ฌธ์ ๋ฅผ ํ์์ ๋ ๋ฌธ์ ์
: ๊ฐ์ ์ ๊ฐ์๊ฐ ์ ์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ์ฌํ๋ค. -> ์ธ์ ๋ฆฌ์คํธ์ ๊ฒฝ์ฐ ๊ฐ์ ์ด ์๋ ๊ฒฝ์ฐ์๋ง ํํํ๊ธฐ ๋๋ฌธ์ ๋๋ถ๋ถ ๋ฌธ์ ์์๋ ์ธ์ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ค.
์ถ์ฒ: ๋ธ๋ก๊ทธ
(2) ์ธ์ ๋ฆฌ์คํธ
a. ๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ์ ์ธ์ ๋ฆฌ์คํธ
ArrayList<Integer> [] lists = new ArrayList [N];
lists["์ถ๋ฐ์ ์ "].add("๋์ฐฉ์ ์ ");
Integerํ ArrayList ๋ฐฐ์ด์ ๋ง๋ ๋ค.
์์ ํ๋ ํ๋๊ฐ ์ถ๋ฐ์ ์ ์ ์๋ฏธํ๊ณ ์์ ์์ List์ ๊ฐ๋ค์ ์ถ๋ฐ ์ ์ ์์ ๊ฐ ์ ์๋ ์ ์ ๋ค์ด ์ ์ฅ๋์ด ์๋ค.
b. ๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ์ ์ธ์ ๋ฆฌ์คํธ
ArrayList<int[]> lists = new ArrayList [N];
lists["์ถ๋ฐ ์ ์ "].add(new int[]{"๋์ฐฉ ์ ์ ", "๊ฐ์ค์น"});
ArrayList์ ์๋ฃํ์ int[] ๋ก ๋ฐ๊ฟ์ ๊ฐ์ค์น ๋ํ ์ ์ฅํ ์ ์๋๋ก ๋ฐ๊พผ๋ค. ๋ฐฐ์ด ๋์ ๋์ฐฉ์ ์ ๊ณผ ๊ฐ์ค์น๋ฅผ ๋ด์ Class๋ฅผ ์ด์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํ์ด๋ ๋๋ค.