-
[Algo Rhythm๐บ๐] BOJ 16926 - ๋ฐฐ์ด ๋๋ฆฌ๊ธฐ 1Algo Rhythm๐บ๐/BOJ 2021. 8. 14. 21:12
๐ซ๋ฌธ์ ๋ถ์
ํฌ๊ธฐ๊ฐ $n \times m\ (2 \le n, m \le 300)$ ์ธ ๋ฐฐ์ด $A$๋ฅผ ๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก $r\ (1 \le r \le 1,000)$๋ฒ ํ์ ํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๊ธฐ ์ํด ๋จผ์ $A$๋ฅผ ๊ด์ฐฐํด๋ณด์.
$A$๋ฅผ ๊ด์ฐฐํ๋ฉด ๊ฐ์ฅ ๋ฐ๊นฅ ์ธต๋ถํฐ ๊ฐ์ฅ ์ ์ธต๊น์ง ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ฌ๊ท์ ์ธ ๊ด๊ณ๊ฐ ์์์ ์ ์ ์๋ค.
๋ํ ๊ฐ์ฅ ๋ฐ๊นฅ ์ธต์ ๊ด์ฐฐํ๋ฉด ๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก 1๋ฒ ํ์ ํ ๋ $(1, 1)$์ ์๋ ๊ฐ์ ์์์ผ๋ก ๊ฐ์ ์๋๋ก ์ฎ๊ธฐ๋ ๊ฒ์ $(n - 1)$๋ฒ, ์ค๋ฅธ์ชฝ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ $(m-1)$๋ฒ , ์๋ก ์ฎ๊ธฐ๋ ๊ฒ์ $(n-1)$๋ฒ, ์ผ์ชฝ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ $(m-1)$๋ฒ ๋ฐ๋ณตํด์ผ ํ๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
๐ฅ๋ฌธ์ ํ์ด
ํฌ๊ธฐ๊ฐ $n \times m$์ธ ๋ฐฐ์ด $A$๋ฅผ ๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก 1ํ ํ์ ํ๋ ํจ์ $rotate$๋ ๋ค์๊ณผ ๊ฐ๋ค.
$rotate(n, m, start_x, start_y)= \begin{cases} nothing & if\ n = 0\ or\ m = 0\\ rotate(n - 2, m - 2, start_x + 1, start_y + 1) & else \end{cases}$
๋ํ $rotate$ ์คํ์ $(start_x, start_y)$์ ์๋ ๊ฐ์ ์์์ผ๋ก ๊ฐ์ ์๋๋ก ์ฎ๊ธฐ๋ ๊ฒ์ $(n-1)$๋ฒ, ์ค๋ฅธ์ชฝ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ $(m - 1)$๋ฒ, ์๋ก ์ฎ๊ธฐ๋ ๊ฒ์ $(n - 1)$๋ฒ, ์ผ์ชฝ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ $(m - 1)$๋ฒ ๋ฐ๋ณตํด์ผ ํ๋ค.
โจ๋ณต์ก๋ ๋ถ์
ํฌ๊ธฐ๊ฐ $n \times m$์ธ ๋ฐฐ์ด $A$๋ฅผ ๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก $r$๋ฒ ํ์ ํ ๋ ์๊ฐ ๋ณต์ก๋์ ๊ณต๊ฐ ๋ณต์ก๋๋ ๊ฐ๊ฐ ๋ค์๊ณผ ๊ฐ๋ค.
โฐ์๊ฐ ๋ณต์ก๋ : $O(nmr)$
- $A$๋ฅผ ์ ์ฅํ๋๋ฐ $O(nm)$์ด ์์๋จ.
- $A$๋ฅผ ๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก ํ์ ํ๋ฉด $O(nm)$์ด ์์๋จ.
- ์ ๊ณผ์ ์ $r$๋ฒ ๋ฐ๋ณตํ๋ฉด $O(nmr)$์ด ์์๋จ.
- $r$๋ฒ ํ์ ํ $A$๋ฅผ ์ถ๋ ฅํ๋๋ฐ $O(nm)$์ด ์์๋จ.
๐ ๊ณต๊ฐ ๋ณต์ก๋ : $O(nm)$
- A๋ฅผ ์ ์ฅํ๋๋ฐ $O(nm)$์ด ์์๋จ.
๐์ฝ๋
๐๋ฌธ์ ์ถ์ฒ
https://www.acmicpc.net/problem/16926
'Algo Rhythm๐บ๐ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algo Rhythm๐บ๐] BOJ 2225 - ํฉ๋ถํด (0) 2021.07.22 [Algo Rhythm๐บ๐] BOJ 1463 - 1๋ก ๋ง๋ค๊ธฐ (0) 2021.07.22 [Algo Rhythm๐บ๐] BOJ 10971 - ์ธํ์ ์ํ 2 (0) 2021.07.10 [Algo Rhythm๐บ๐] BOJ 1759 - ์ํธ ๋ง๋ค๊ธฐ (0) 2021.06.30 [Algo Rhythm๐บ๐] BOJ 18290 - NM๊ณผ K(1) (0) 2021.06.30