N์ 59๋ถ 59์ด ๊น์ง 3์ด ํ๋๋ผ๋ ๋์ค๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ชจ๋ ๊ตฌํ๋ ๋ฌธ์ ๊ฐ๋จํ๊ฒ 60์ด ๋๋ฉด ๋ถ, ์๋ฅผ ์ฆ๊ฐ ์์ผฐ๊ณ 3์ด ์์ผ๋ฉด count๋ฅผ ์ฆ๊ฐ์ด, ๋ถ์ด 60๊น์ง ์ธ ๊ฒ์ ์ด์ฉํด ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ฐ๋จํ ๊ตฌํํจ์๊ฐ ๋ฌธ์ ์ ์ต์ํด์ง์์ด๊ฒ์ด ์ทจ์ ์ ์ํ ์ฝ๋ฉํ ์คํธ๋ค with
์ ์ด๋ M๋งํผ์ ๋ก์ ๊ฐ์ ธ๊ฐ๊ธฐ์ํด ์ค์ ํ ์ ์๋ ์ต๋ ๋์ด๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด์ง ํ์ ๋ฌธ์ ์์ฐจํ์์ ๋ง๋ ์๋๊ฒ ์ค๋ ๊ฑธ๋ฆฐ๋ค.๋ฐ๋ผ์, ์ด์ง ํ์์ ํตํด M๋ณด๋ค ์ ์ ๋ก์ด๋ฉด ๋์ด๋ฅผ ๋ฎ์ถฐ ์๋ฅด๊ณ M๋ณด๋ค ๋ง์ ๋ก์ด๋ฉด ๋์ด๋ฅผ ๋ํ ์ต๋ ๋์ด๋ฅผ ๊ตฌํ๋๋ก ํ๋ค.์ด์ง ํ์ -> ์๋ก
์ ์ X๊ฐ ์ฃผ์ด์ง ๋ X๊ฐ 5, 3, 2๋ก ๋๋์ด ๋จ์ด์ง๋ฉด ๋๋ ์ ์๊ณ -1์ ๋นผ๋ ์ฐ์ฐ์ ๊ฐ์ง ๋ ์ต์ํ์ ์ฐ์ฐ์ 1์ ๋ง๋๋ ํ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ \-1์ ๋ฐ๋ก ๋ฌด์กฐ๊ฑด ์คํ๋๋ค.๋๋จธ์ง๋ ๋๋์ด ๋จ์ด์ง๋ค๋ ์กฐ๊ฑด์ด ํ์ํ๋ค.์ ์ ๊ตฌํ๋ ๊ฐ๋ค์ด ๋ค์ ์ฐ์ธ๋ค๋ ๊ฒ์ ๋์น์ฑ์ผ
1X2, 2X1, 2X2 ํฌ๊ธฐ์ ๋ฎ๊ฐ๊ฐ ์์ ๋ 2XN์ ๋ฐ๋ฅ์ ๋ชจ๋ ์ฑ์ฐ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.๊ฐ๋ก 1์นธ์ผ๋ก ์ฑ์ธ ์ ์๋ ์๋ 1๊ฐ์ด๋ค.๊ฐ๋ก 2์นธ์ผ๋ก ์ฑ์ธ ์ ์๋ ์๋ 3๊ฐ์ด๋ ๊ฐ๋ก 1์นธ์ 2๊ฐ ์ด ๊ฒ๊ณผ ๊ฒน์น๋ฏ๋ก 2๊ฐ์ด๋ค.๋ฐ๋ผ์, ์ ํ์์ d\[n] =
N๊ฐ์ง ์ข ๋ฅ์ ํํ ์ค์์ ํํ์ ๊ฐ์๋ฅผ ์ต์ํ์ผ๋ก ์ด์ฉํด ๊ทธ ๊ฐ์น์ ํฉ์ด M์์ด ๋๋๋ก ํ๋ค. ํํ ๊ฐฏ์๋ ๋ฌด์ ํ์ด๋ฉฐ ์์๊ฐ ๋ฌ๋ผ๋ ๊ฐ์ ๊ฑธ๋ก ์น๋ค.๋ถ๊ฐ๋ฅ์ -1์ ์ถ๋ ฅํ๋ค.๊ธฐ๋ณธ์ ์ธ ๊ทธ๋ฆฌ๋ ๋ฌธ์ ์ฒ๋ผ ๊ฑฐ์ค๋ฆ๋ ๋ฌธ์ ์ ๋์ผํ์ง๋ง ํํ๋จ์์ ํฐ ๋จ์๊ฐ ์์ ๋จ์์ ๋ฐฐ์๊ฐ
์ฃผ์ด์ง ์ฐ์ฐ ๊ฐ์ด + ๋ x๊ฐ - ๋ y๊ฐ ๊ฐ์ ํ์์ผ๋ก ์ฃผ์ด์ก๋ค. ์ด๋ฅผ ์ด๋ป๊ฒ DFS ๋ฐฑํธ๋ํน ํ์์ผ๋ก ํ์ด์ผ ํ ์ง ๊ฐ์ด ์ค์ง ์์๋ค.๋๋ ์ผ๋ฐ์ ์ธ DFS์ฒ๋ผ ๋ง๋ค๊ธฐ ์ํด ๊ฐ๊ฐ์ ๊ฐ์์ ๋ํด ๋ฐฐ์ด์ ๋ง๋ค์ด ๋ฐฉ๋ฌธ ์ฒดํฌ๋ฅผ ํ ์ ์๋๋ก ๋ง๋ค์๋ค.์ฃผ์ด์ง ์ฐ์ฐ์ ํํ๋ฅผ ์ ์ง
๋ชจํ๊ฐ ๊ธธ๋์ฅ์ธ ๋๋น์ด๋ ๋ชจํ๊ฐ ๊ทธ๋ฃน์ ์์ ํ๊ฒ ๊ตฌ์ฑํ๊ณ ์ ๊ณตํฌ๋๊ฐ X์ธ ๋ชจํ๊ฐ๋ ๋ฐ๋์ X๋ช ์ด์์ผ๋ก๊ตฌ์ฑํ ๋ชจํ๊ฐ ๊ทธ๋ฃน์ ์ฐธ์ฌํด์ผ ์ฌํ์ ๋ ๋ ์ ์๋๋ก ๊ท์ ํ๋ค.N๋ช ์ ๋ชจํ๊ฐ์ ๋ํ ์ ๋ณด๊ฐ ์ฃผ์ด์ก์๋, ์ฌํ์ ๋ ๋ ์ ์๋ ๊ทธ๋ฃน ์์ ์ต๋๊ฐ์ ๊ตฌํ๋ผ.๊ณตํฌ๋๊ฐ ๋ฎ์
N๊ฐ์ ๋์ ์ ๊ฐ์ง๊ณ ์์ ๋ ๋์ ์ ์ด์ฉํ์ฌ ๋ง๋ค ์ ์๋ ์์ ์ ์ ๊ธ์ก ์ค ์ต์๊ฐ์ ๊ตฌํ์ธ์.๊ณตํฌ๋๊ฐ ๋ฎ์ ์๋ก ๊ทธ๋ฃน์ ์ง๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ์ ํด์ค๋ค.๊ทธ ํ ๋ชจ๋ ๋ชจํ๊ฐ๋ค์ ์ฐจ๋ก๋๋ก ๊ฒ์ฌํ๋ค.ํ์ฌ ๋ชจํ๊ฐ์ ๊ณตํฌ๋๊ฐ ๊ทธ๋ฃน์ธ์๋ณด๋ค ๋๋ค๋ฉด ๊ทธ๋ฃน์ธ์์ ์ถ๊ฐ
์ผ์ง์ ์์ ์ง์ ์ ๋ ฅ๋ฐ๊ณ ๊ทธ ์ค ํ๋์ ์ํ ๋๋ฅผ ์ค์นํ ๋ ์ํ ๋๋ก๋ถํฐ ๋ชจ๋ ์ง๊น์ง์ ๊ฑฐ๋ฆฌ์ ํฉ์ด ์ต์๊ฐ ๋๋ ์ง์ ๊ณ ๋ฅด์์ค.์ ๋ ฌํ ๋ฐฐ์ด์ ํ ๊ฐ์ด๋ฐ ๊ฐ์ด์ด๋ค ํ์ ์์ ๋ชจ๋ ์ ์ผ๋ก์ ๊ฑฐ๋ฆฌ์ ์ต์๊ฐ์ด๋ค.์ด๊ฒ์ด ์ทจ์ ์ ์ํ ์ฝ๋ฉํ ์คํธ๋ค with python
๋จผ์ stage ์ ๋ ฌ์ ํตํด stage๋ณ๋ก ์์๋๋ก ๊ฒ์ฌํ ์ ์๊ฒ ๋ง๋ ๋ค.ํ์ฌ stage์ ๋จธ๋ฌด๋ฅด๊ณ ์๋ ์ฌ๋์ ์คํจํ ๊ฒ์ด๋ฏ๋ก count๋ฅผ ์ฆ๊ฐ์ํจ๋ค. ์ดํ ์คํจ์จ์ ๊ณ์ฐํ๊ณ ํด๋น ์ธ์์ ์ ์ฒด ์ธ์์์ ์ ์ธ์ํจ๋ค.์ด๋ฅผ ๋ง์ง๋ง๊น์ง ๋ฐ๋ณตํ๋ค.๊ทธ ํ ์คํจ์จ์ key๋ก ์ฌ
ํญ์ ๊ฐ์ฅ ์์ ํฌ๊ธฐ์ ๋ ์นด๋ ๋ฌถ์์ ํฉ์ณค์ ๋ ์ต์ ํด๋ฅผ ๋ณด์ฅํ๋ฏ๋ก ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ณผ ์ ์๋ค.์ ๋ ฌ ํ ์ซ์๋ฅผ ๋ฌด์์ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ํ๋ ๊ฒ์ด ์๋๋ค.๋ํ๋ค ๋ณด๋ฉด ์ซ์์ ํฌ๊ธฐ๊ฐ ์ญ์ ๋๊ธฐ ๋๋ฌธ์ด๋ค.๋ฐ๋ผ์, heap์ ์ด์ฉํด์ ํญ์ ์ต์๊ฐ์ ๋ฝ์์ค ์ ์๋๋ก ํ๋ค.
<์์>1\. ์ ๋์ด ์ ์ ๋ฏธ์ด ๋๊ฐ์ง ๋ฐฐ์ด์ ๋ง๋ ๋ค.2\. ๋จ์ด๋ ๋จ์ด ๊ธธ์ด๋ก ๋๋ ์ ๋ถ๋ฅํ ์ ์๋ค.3\. ๋จ์ด ๊ธธ์ด๋ก ๋ถ๋ฅํ ๋ฐฐ์ด์ ์ด์ง ํ์์ ์ํด ์ ๋ ฌํ๋ค.4\. query์ ๊ธธ์ด์ ๊ฐ์ ๋ฐฐ์ด์์ ?๋ฅผ ์ ์ธํ ๋ฌธ์์ ๊ฐ์ ๋ฌธ์์ด์ ๊ฐฏ์๋ฅผ ์ด์ง ํ์์ผ๋ก