-
[Algo Rhythm๐บ๐] BOJ 1759 - ์ํธ ๋ง๋ค๊ธฐAlgo Rhythm๐บ๐/BOJ 2021. 6. 30. 19:52
๐ซ๋ฌธ์ ๋ถ์
์ํธ๊ฐ ๊ตฌ์ฑ๋๋ ์๋ก ๋ค๋ฅธ ์ํ๋ฒณ ์๋ฌธ์์ ๊ฐ์๋ฅผ $l$, ์ํธ๋ก ์ฌ์ฉํ์ ๋ฒํ ๋ฌธ์์ ๊ฐ์๋ฅผ $c\ (3 \le l \le c \le 15)$๋ผ๊ณ ํ์. ์ํธ๋ฅผ ์ด๋ฃจ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ๋ ์กฐ๊ฑด์ ๋ง์กฑํด์ผ ํ๋ค.
- ์ต์ํ ํ ๊ฐ ์ด์์ ๋ชจ์(a, e, i, o, u)๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- ์ต์ํ ๋ ๊ฐ ์ด์์ ์์๋ค๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- ์ํธ๋ฅผ ์ด๋ฃจ๋ ์ํ๋ฒณ๋ค์ ์ฆ๊ฐํ๋ ์์๋ก ๋ฐฐ์ด๋์ด ์๋ค.
์ํธ๋ก ์ฌ์ฉํ์ ๋ฒํ ๋ฌธ์๋ค์ ํ๋์ vertex๋ก ๋ณด์. ๊ทธ๋ ๋ค๋ฉด ์ด ๋ฌธ์ ๋ $c$๊ฐ์ vertex๋ค ์ค ์์ ์ธ๊ธํ ์กฐ๊ฑด๋ค์ ๋ง์กฑํ์ฌ $l$๊ฐ์ vertex๋ค์ ์ ํํ๋ backtracking ๋ฌธ์ ๋ก ์ดํดํ ์ ์๋ค.
๐ฅ๋ฌธ์ ํ์ด
๋จผ์ ์ํธ๋ก ์ฌ์ฉํ์ ๋ฒํ ๋ฌธ์๋ค์ ์ ์ฅํ ๋ฐฐ์ด $alphabets$์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค. ์๋ํ๋ฉด ์ํธ์์ ์ํ๋ฒณ๋ค์ ์ฆ๊ฐํ๋ ์์๋ก ๋ฐฐ์ด๋์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ค์์ผ๋ก ์ํธ๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด $cipher$์ ์์ฑํ ๋ค ์ถ๋ ฅํ๋ ํจ์ $f$๋ฅผ ์คํํ๋๋ฐ $f$๋ ๋ค์๊ณผ ๊ฐ๋ค.
โจ๋ณต์ก๋ ๋ถ์
์ํธ๊ฐ ๊ตฌ์ฑ๋๋ ์๋ก ๋ค๋ฅธ ์ํ๋ฒณ ์๋ฌธ์์ ๊ฐ์๋ฅผ $l$, ์ํธ๋ก ์ฌ์ฉํ์ ๋ฒํ ๋ฌธ์์ ๊ฐ์๋ฅผ $c\ (3 \le l \le c \le 15)$๋ผ๊ณ ํ ๋, ์๊ฐ ๋ณต์ก๋์ ๊ณต๊ฐ ๋ณต์ก๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
โฐ์๊ฐ ๋ณต์ก๋ : $O(c^l)$
- $alphabets$๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋๋ฐ $O(clogc)$๊ฐ ์์๋จ
- $cipher$๋ฅผ ์์ฑํ๊ธฐ ์ํด $f$๋ฅผ recursive case๋ง๋ค $c - idx (1 \le idx \le c)$๋ฒ ํธ์ถํ๋๋ฐ ์ด๋ฅผ $l$๋ฒ ๋ฐ๋ณตํ๋ค. ๋ฐ๋ผ์ $O(c^l)$์ด ์์๋จ
๐ ๊ณต๊ฐ ๋ณต์ก๋ : $O(c)$
- $alphabets$์ ์ ์ฅํ๊ธฐ ์ํด $O(c)$๊ฐ ์์๋จ
- $cipher$๋ฅผ ์ ์ฅํ๊ธฐ ์ํด $O(c)$๊ฐ ์์๋จ
๐์ฝ๋
๐๋ฌธ์ ์ถ์ฒ
https://www.acmicpc.net/problem/1759
1759๋ฒ: ์ํธ ๋ง๋ค๊ธฐ
์ฒซ์งธ ์ค์ ๋ ์ ์ L, C๊ฐ ์ฃผ์ด์ง๋ค. (3 ≤ L ≤ C ≤ 15) ๋ค์ ์ค์๋ C๊ฐ์ ๋ฌธ์๋ค์ด ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ๋ฌธ์๋ค์ ์ํ๋ฒณ ์๋ฌธ์์ด๋ฉฐ, ์ค๋ณต๋๋ ๊ฒ์ ์๋ค.
www.acmicpc.net
'Algo Rhythm๐บ๐ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algo Rhythm๐บ๐] BOJ 1463 - 1๋ก ๋ง๋ค๊ธฐ (0) 2021.07.22 [Algo Rhythm๐บ๐] BOJ 10971 - ์ธํ์ ์ํ 2 (0) 2021.07.10 [Algo Rhythm๐บ๐] BOJ 18290 - NM๊ณผ K(1) (0) 2021.06.30 [Algo Rhythm๐บ๐] BOJ 9095 - 1, 2, 3 ๋ํ๊ธฐ (0) 2021.06.29 [Algo Rhythm๐บ๐] BOJ 1748 - ์ ์ด์ด์ฐ๊ธฐ 1 (0) 2021.06.28