-
[Algo Rhythm๐บ๐]BOJ 14889 - ์คํํธ์ ๋งํฌAlgo Rhythm๐บ๐/BOJ 2021. 6. 18. 23:44
๋ฌธ์ ๋ถ์
์คํํธํ์ $T_{start}$, ๋งํฌํ์ $T_{link}$ ๊ทธ๋ฆฌ๊ณ ๋ ํ์ ๋ฅ๋ ฅ์น๋ฅผ ๊ฐ๊ฐ $S_{start}, S_{link}$๋ผ๊ณ ํ์. ์ด๋ ๊ฐ ํ์ ์ํ๋ ์ฌ๋๋ค์ ์๋ ๋ ํ ๋ชจ๋ ์ถ๊ตฌ๋ฅผ ํ๋ $N\ (4 \le N \le 20)$๋ช ์ ์ ๋ฐ์ธ $N / 2$ ๋ช ์ด๋ค.
๋ฌธ์ ์์ ์๊ตฌํ๋ $min(|S_{start} - S_{link}|)$๋ฅผ ๊ตฌํ๊ธฐ ์ํ ๊ฐ์ฅ ์ง๊ด์ ์ธ ๋ฐฉ๋ฒ์ $(T_{start}, T_{link})$์ ๋ชจ๋ ์กฐํฉ์ ๊ตฌํ ๋ค ๊ฐ ์กฐํฉ์ $|S_{start} - S_{link}|$์ ๊ตฌํ๊ณ ๊ทธ ์ค ์ต์๊ฐ์ ์ฐพ๋ ๊ฒ์ด๋ค.
๋ชจ๋ ์กฐํฉ์ ๊ตฌํด์ผ ํ๋ ๋ฌธ์ ๋ค์ ์ฃผ๋ก 'backtracking'์ ์ฌ์ฉํ๋ค. ์ด ๋ฌธ์ ๋ ๋ง์ฐฌ๊ฐ์ง๋ก backtracking์ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ๋ค.
๋ฌธ์ ํ์ด
์ถ๊ตฌ๋ฅผ ํ๋ ์ฌ๋๋ค๋ง๋ค ๊ณ ์ ์ id๊ฐ ์๊ณ ๊ทธ๊ฒ๋ค์ ๊ฐ๊ฐ 1, 2, ... , N์ด๋ผ๊ณ ํ์. ๊ทธ๋ฆฌ๊ณ ๊ฐ id๋ฅผ ํ๋์ vertex๋ผ๊ณ ์๊ฐํด๋ณด์.
๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๋ $(T_{start}, T_{link})$์ ๋ชจ๋ ์กฐํฉ์ ๊ตฌํ๋ ๋ฌธ์ ๊ฐ ๊ฒฐ๊ตญ (์ ํํ N / 2๊ฐ์ vertex, ์ ํํ์ง ์์ N / 2๊ฐ์ vertex)์ ๋ชจ๋ ์กฐํฉ์ ๊ตฌํ๋ ๋ฌธ์ ์ ๊ฐ๋ค๋ ์ฌ์ค์ ์ ์ ์๋ค. vetex๋ค์ ์ ํํ ๋๋ ์ด๋ฏธ ์ ํ๋์ง ์์ vertex๋ค๋ง ์ ํํ๊ณ ์ด๋ ์ฐ์ด๋ ์ ํ์์ ๋ค์๊ณผ ๊ฐ๋ค.
$f(id, n_{member}, N) = \begin{cases}calc\ |S_{start} - S_{link}|\ and\ compare&if\ n_{member} == N / 2&(base\ case)\\f(id + 1, n_{member} + 1, N)&else\ if\ vertex_{id + 1}\ is\ not\ visited&(recursive\ case)\end{cases}โ$
์ด๋ ์ฃผ์ํ ์ ์ ๋ชจ๋ ์กฐํฉ์ ๊ตฌํ๊ธฐ ์ํด 1๋ถํฐ N๊น์ง backtrackingํ ํ์๊ฐ ์๋ค๋ ๊ฒ์ด๋ค. ์๋ํ๋ฉด N / 2๊ฐ์ vertex๋ง ์ ํํ๋ฉด ๋๋จธ์ง N / 2๊ฐ์ vertex๋ค์ ์๋์ผ๋ก ๊ฒฐ์ ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ N / 2๊ฐ์ vertex๋ง backtrackingํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ก ๊ตฌํํด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด 4๊ฐ์ vertex ์ค 2๊ฐ๋ฅผ ์ ํํ๋ฉด ๊ฐ๋ฅํ ์กฐํฉ์ $(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)$์ด๋ ๊ฒ 6๊ฐ์ด๋ค. ํ์ง๋ง $(1, 2)$ ์ ํ์ ์ ํ๋์ง ์๋ vertex๋ค์ ์์ฐ์ค๋ฝ๊ฒ $(3, 4)$๊ฐ ๋๋ ๊ฒ์ ์ ์ ์๋ค.
๋ณต์ก๋ ๋ถ์
n๋ช ์ ์ฌ๋๋ค์ด ์ถ๊ตฌ๋ฅผ ํ๋ค๊ณ ํ ๋ ๋ณต์ก๋๋ ์๋์ ๊ฐ๋ค.
์๊ฐ ๋ณต์ก๋ : $O(n!)$
- recursive call์ $i$๋ฒ ํ์ ๋ ๊ฐ recursive call๋ง๋ค ์ ํํ ์ ์๋ id ์ฆ, vertex๊ฐ $N - i$๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ณต๊ฐ ๋ณต์ก๋ : $O(n^2)$
- ๊ฐ์ ํ์ผ๋ ๋ฅ๋ ฅ์น๋ฅผ ๊ธฐ๋กํ 2์ฐจ์ ๋ฐฐ์ด : $O(n^2)$
- n๊ฐ์ vertex์ ๋ํ visit ์ฌ๋ถ๋ฅผ ๊ธฐ๋กํ๋ ๋ฐฐ์ด : $O(n)$
- $T_{start}, T_{link}$์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ง๋ vertor : $O(n)$
์ฝ๋
๋ฌธ์ ์ถ์ฒ ๋ฐ ์๋ณธ ๋ฌธ์
https://www.acmicpc.net/problem/14889
14889๋ฒ: ์คํํธ์ ๋งํฌ
์์ 2์ ๊ฒฝ์ฐ์ (1, 3, 6), (2, 4, 5)๋ก ํ์ ๋๋๋ฉด ๋๊ณ , ์์ 3์ ๊ฒฝ์ฐ์๋ (1, 2, 4, 5), (3, 6, 7, 8)๋ก ํ์ ๋๋๋ฉด ๋๋ค.
www.acmicpc.net
https://www.notion.so/BOJ-14889-cb96bb89dce24aa88b7b955bc050c074
BOJ 14889 - ์คํํธ์ ๋งํฌ
๋ฌธ์ ๋ถ์
www.notion.so
'Algo Rhythm๐บ๐ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algo Rhythm๐บ๐]BOJ 14888 - ์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ (0) 2021.06.22 [Algo Rhythm๐บ๐]BOJ 20170 - Commemorative Dice (0) 2021.06.21 [Algo Rhythm๐บ๐]BOJ 1620 - ์ ์ ํ๋ด2 (0) 2021.03.12 [Algo Rhythm๐บ๐]BOJ 14501 - ํด์ฌ (0) 2021.03.11 [Algo Rhythm๐บ๐]BOJ 13458 - ์ํ๊ฐ๋ (0) 2021.03.09