-
[Algo Rhythm๐บ๐] ํ๋ก๊ทธ๋๋จธ์ค - ๊ธฐ์ง๊ตญ ์ค์นAlgo Rhythm๐บ๐/Programmers 2022. 9. 24. 16:51
๐ซ๋ฌธ์ ๋ถ์
์ํํธ์ ๊ฐ์๋ฅผ $n\ (1 \le n \le 2 \times 10^8)$, ํ์ฌ ๊ธฐ์ง๊ตญ์ด ์ค์น๋ ์ํํธ์ ๋ฒํธ๊ฐ ๋ด๊ธด 1์ฐจ์ ๋ฐฐ์ด์ $S\ (1 \lt \left\vert S \right\vert \lt 10^4,\ S๋\ ์ค๋ฆ์ฐจ์\ ์ ๋ ฌ)$, $S$์ ์ํ๋ ๊ฐ ๊ธฐ์ง๊ตญ์ $s_i\ (1 \le s_i \le n,\ 1 \le i \le \left\vert S \right\vert )$, ์ ํ์ ๋๋ฌ ๊ฑฐ๋ฆฌ๋ฅผ $w(1 \le w \le 10^4)$, ํ ๊ธฐ์ง๊ตญ์ด ์ ํ๋ฅผ ์ ๋ฌํ ์ ์๋ ๊ธฐ์ง๊ตญ๋ค์ ์ต๊ฐ ๊ฐ์๋ฅผ $d\ (=2 \times w + 1)$๋ผ๊ณ ํ์.
ํ์ฌ ์ค์น๋ ๊ธฐ์ง๊ตญ $s_i$์ ์ ํ ์ ๋ฌ ๋ฒ์๋ฅผ $rcvd_i$๋ผ๊ณ ํ ๋, $rcvd_i$๋ ๋ค์๊ณผ ๊ฐ๋ค.
$\begin{matrix} rcvd_i &=& \left[\ left_i,right_i\ \right] \\ &=& \left[\ \max(1, s_i - w),\min(n, s_i + w)\ \right] \end{matrix}$
์ฐ๋ฆฐ $rcvd_i$๋ฅผ ํตํด ๊ธฐ์ง๊ตญ์ด ์ค์น๋์ง ์๊ณ ์ฐ์๋ ์ํํธ๋ค์ ๊ฐ์ $L_j$๋ฅผ ์ ์ ์๋๋ฐ ๊ทธ๊ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
$L_j = pos - left_i\ (pos : ์ฐ์๋\ ์ํํธ\ ์ค\ ์ฒซ\ ์ํํธ์\ ๋ฒํธ,\ 0\le j \le i + 1)$
๋ํ ์ฐ๋ฆฐ $L_j$์ ํตํด ์ฐ์๋ ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด ์ฆ์คํด์ผ ํ๋ ๊ธฐ์ง๊ตญ ๊ฐ์์ ์ต์๊ฐ์ธ $N_{stn_j}$๋ฅผ ์ ์ ์๋๋ฐ ๊ทธ๊ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
$N_{stn_j} = \begin{cases} 1 &if\ 0 \lt L_j \lt d\ \\\ulcorner {L_j \over d} \urcorner&else\end{cases}โ$
๐ฅ๋ฌธ์ ํ์ด
๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด ์ฆ์คํด์ผ ํ ๊ธฐ์ง๊ตญ ๊ฐ์์ ์ต์๊ฐ $ans$๋ ๋ค์๊ณผ ๊ฐ๋ค.
$ans = \sum N_{stn_j}$
$rcvd_i$๋ฅผ ํ๋์ฉ ์ํํ๋ฉฐ $N_{stn_j}$๋ฅผ ๊ตฌํ ๋ค ๋ํ๋ฉด ๋ ๊ฒ ๊ฐ์ง๋ง ์ฃผ์ํด์ผ ํ ์ ์ด ํ๋ ์๋ค.
๊ทธ๊ฒ์ ๋ฐ๋ก ์๋์ ๊ฐ์ด ๋ง์ง๋ง $rcvd_i$์ $right_i$๊ฐ $n$๋ณด๋ค ์์ ๊ฒฝ์ฐ์ด๋ค.
์ด ๊ฒฝ์ฐ ๋ง์ง๋ง $N_{stn_j}$๋ฅผ ๊ตฌํ ์ ์๊ธฐ ๋๋ฌธ์ $rcvd$์ $\left[\ n+1,n+1\ \right]$๋ผ๋ ๊ฐ์์ ์ ํ ์ ๋ฌ ๋ฒ์๋ฅผ ์ถ๊ฐํ๋ค.
โจ๋ณต์ก๋ ๋ถ์
$S$์ $rcvd$์ ํฌ๊ธฐ๋ฅผ $n\ (1 \lt n \lt 10^4)$, ์ด๋ผ๊ณ ํ ๋, ์๊ฐ ๋ณต์ก๋์ ๊ณต๊ฐ ๋ณต์ก๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
โฐ์๊ฐ ๋ณต์ก๋ : $O(n)$
- $rcvd$ ๊ตฌํ๊ธฐ : $O(n)$
- $\sum N_{stn_j}$ ๊ณ์ฐ : $O(n)$
๐ ๊ณต๊ฐ ๋ณต์ก๋ : $O(n)$
- $S,\ rcvd$ ์ ์ฅ : $O(n)$
๐์ฝ๋
๐๋ฌธ์ ์ถ์ฒ
https://school.programmers.co.kr/learn/courses/30/lessons/12979
'Algo Rhythm๐บ๐ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algo Rhythm๐บ๐] ํ๋ก๊ทธ๋๋จธ์ค - ์ซ์ ๊ฒ์ (0) 2022.09.24 [Algo Rhythm๐บ๐] ํ๋ก๊ทธ๋๋จธ์ค ๊ณ ๋์ kit ๋๋์ง (0) 2020.08.08 [Algo Rhythm๐บ๐] ํ๋ก๊ทธ๋๋จธ์ค ๊ณ ๋์ kit ๋ฑ๊ตฃ๊ธธ (0) 2020.08.06 [Algo Rhythm๐บ๐] ํ๋ก๊ทธ๋๋จธ์ค ๊ณ ๋์ kit ์ ์ ์ผ๊ฐํ (0) 2020.08.04 [Algo Rhythm๐บ๐] ํ๋ก๊ทธ๋๋จธ์ค ๊ณ ๋์ kit ์์ฐ (0) 2020.07.30