์๊ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ ์ถ ์ ๋ต ๋ง์ ์ฌ๋ ์ ๋ต ๋น์จ 1 ์ด 256 MB 16367 3904 2522 25.125% ๋ฌธ์ ํ์คํ ๊ทธ๋จ์ ์ง์ฌ๊ฐํ ์ฌ๋ฌ ๊ฐ๊ฐ ์๋์ชฝ์ผ๋ก ์ ๋ ฌ๋์ด ์๋ ๋ํ์ด๋ค. ๊ฐ ์ง์ฌ๊ฐํ์ ๊ฐ์ ๋๋น๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง, ๋์ด๋ ์๋ก ๋ค๋ฅผ ์๋ ์๋ค. ์๋ฅผ ๋ค์ด, ์ผ์ชฝ ๊ทธ๋ฆผ์ ๋์ด๊ฐ 2, 1, 4, 5, 1, 3, 3์ด๊ณ ๋๋น๊ฐ 1์ธ ์ง์ฌ๊ฐํ์ผ๋ก ์ด๋ฃจ์ด์ง ํ์คํ ๊ทธ๋จ์ด๋ค. ํ์คํ ๊ทธ๋จ์์ ๊ฐ์ฅ ๋์ด๊ฐ ํฐ ์ง์ฌ๊ฐํ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ ๋ ฅ์ ํ ์คํธ ์ผ์ด์ค ์ฌ๋ฌ ๊ฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ํ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ์ง์ฌ๊ฐํ์ ์ n์ด ๊ฐ์ฅ ์ฒ์์ผ๋ก ์ฃผ์ด์ง๋ค. (1 ≤ n ≤ 100,000) ๊ทธ ๋ค์ n๊ฐ์ ์ ์ h1, ..., hn (0 ≤ hi ≤ 1,000,000,..
์๊ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ ์ถ ์ ๋ต ๋ง์ ์ฌ๋ ์ ๋ต ๋น์จ 2 ์ด 256 MB 9503 5463 4173 58.667% ๋ฌธ์ N×Nํฌ๊ธฐ์ ํ๋ ฌ๋ก ํํ๋๋ ์ข ์ด๊ฐ ์๋ค. ์ข ์ด์ ๊ฐ ์นธ์๋ -1, 0, 1์ ์ธ ๊ฐ ์ค ํ๋๊ฐ ์ ์ฅ๋์ด ์๋ค. ์ฐ๋ฆฌ๋ ์ด ํ๋ ฌ์ ์ ์ ํ ํฌ๊ธฐ๋ก ์๋ฅด๋ ค๊ณ ํ๋๋ฐ, ์ด๋ ๋ค์์ ๊ท์น์ ๋ฐ๋ผ ์๋ฅด๋ ค๊ณ ํ๋ค. ๋ง์ฝ ์ข ์ด๊ฐ ๋ชจ๋ ๊ฐ์ ์๋ก ๋์ด ์๋ค๋ฉด ์ด ์ข ์ด๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค. (1)์ด ์๋ ๊ฒฝ์ฐ์๋ ์ข ์ด๋ฅผ ๊ฐ์ ํฌ๊ธฐ์ 9๊ฐ์ ์ข ์ด๋ก ์๋ฅด๊ณ , ๊ฐ๊ฐ์ ์๋ฆฐ ์ข ์ด์ ๋ํด์ (1)์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค. ์ด์ ๊ฐ์ด ์ข ์ด๋ฅผ ์๋์ ๋, -1๋ก๋ง ์ฑ์์ง ์ข ์ด์ ๊ฐ์, 0์ผ๋ก๋ง ์ฑ์์ง ์ข ์ด์ ๊ฐ์, 1๋ก๋ง ์ฑ์์ง ์ข ์ด์ ๊ฐ์๋ฅผ ๊ตฌํด๋ด๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ N(1≤N≤3^7, N์ 3^..
https://www.acmicpc.net/problem/5620 ์๊ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ ์ถ ์ ๋ต ๋ง์ ์ฌ๋ ์ ๋ต ๋น์จ 1 ์ด 256 MB 1700 558 294 40.664% ๋ฌธ์ ํ๋ฉด์์ n๊ฐ์ ์ (P1, .... , Pn) ์ด ๋์ฌ์ ธ์๋ค๊ณ ํ์ ๋, ๊ฑฐ๋ฆฌ๊ฐ ์ต์์ธ ๋ ๊ฐ์ ์ ์ ๊ตฌํ๊ณ ๊ทธ ๊ฑฐ๋ฆฌ๋ฅผ ์๊ณ ์ถ๋ค. ์ ๋ ฅ ์ ๋ ฅ์ ์ฒซ ๋ฒ์งธ ์ค์ ์ ์๋ก ๋ ์ ์ ๊ฐ์ n์ด ์ฃผ์ด์ง๋ค. ๋ ๋ฒ์งธ ์ค๋ถํฐ n+1๋ฒ์งธ ์ค๊น์ง 2๊ฐ์ ์ ์ x,y๊ฐ ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. i+1๋ฒ์งธ ์ค์ Pi ์ x,y ์ขํ๋ฅผ ์๋ฏธํ๊ณ n๊ฐ์ ์ ์ ๋ํด์ ์ฃผ์ด์ง๊ฒ ๋๋ค. ์ ์ ๊ฐ์๋ 2 โฆ n โฆ 500000 , ์ขํ์ ๋ฒ์๋ -10000 โฆ x,y โฆ10000๋ก ์ฃผ์ด์ง๋ค. ๋ํ, ๋ชจ๋ ์ ์ ์ขํ๋ ๊ฐ์ ๊ฒ์ด ์์ด ๋ค๋ฅธ ๊ฒ์ผ๋ก ..
https://www.acmicpc.net/problem/1992 ์๊ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ ์ถ ์ ๋ต ๋ง์ ์ฌ๋ ์ ๋ต ๋น์จ 2 ์ด 128 MB 10660 6114 4794 57.420% ๋ฌธ์ ํ๋ฐฑ ์์์ ์์ถํ์ฌ ํํํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก ์ฟผ๋ ํธ๋ฆฌ(Quad Tree)๋ผ๋ ๋ฐฉ๋ฒ์ด ์๋ค. ํฐ ์ ์ ๋ํ๋ด๋ 0๊ณผ ๊ฒ์ ์ ์ ๋ํ๋ด๋ 1๋ก๋ง ์ด๋ฃจ์ด์ง ์์(2์ฐจ์ ๋ฐฐ์ด)์์ ๊ฐ์ ์ซ์์ ์ ๋ค์ด ํ ๊ณณ์ ๋ง์ด ๋ชฐ๋ ค์์ผ๋ฉด, ์ฟผ๋ ํธ๋ฆฌ์์๋ ์ด๋ฅผ ์์ถํ์ฌ ๊ฐ๋จํ ํํํ ์ ์๋ค. ์ฃผ์ด์ง ์์์ด ๋ชจ๋ 0์ผ๋ก๋ง ๋์ด ์์ผ๋ฉด ์์ถ ๊ฒฐ๊ณผ๋ "0"์ด ๋๊ณ , ๋ชจ๋ 1๋ก๋ง ๋์ด ์์ผ๋ฉด ์์ถ ๊ฒฐ๊ณผ๋ "1"์ด ๋๋ค. ๋ง์ฝ 0๊ณผ 1์ด ์์ฌ ์์ผ๋ฉด ์ ์ฒด๋ฅผ ํ ๋ฒ์ ๋ํ๋ด์ง๋ฅผ ๋ชปํ๊ณ , ์ผ์ชฝ ์, ์ค๋ฅธ์ชฝ ์, ์ผ์ชฝ ์๋, ์ค๋ฅธ์ชฝ ์๋, ์ด๋ ๊ฒ ..
7.2 ๋ฌธ์ : ์ฟผ๋ ํธ๋ฆฌ ๋ค์ง๊ธฐ (๋ฌธ์ ID:QUADTREE, ๋์ด๋: ํ) ๋๋์ ์ขํ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ ์์ ์์ถํด ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ฌ๋ฌ ๊ธฐ๋ฒ ์ค ์ฟผ๋ ํธ๋ฆฌ๋ ๊ฒ์ด ์์ต๋๋ค. ์ฃผ์ด์ง ๊ณต๊ฐ์ ํญ์ 4๊ฐ๋ก ๋ถํ ํด ์ฌ๊ท์ ์ผ๋ก ํํํ๊ธฐ ๋๋ฌธ์ ์ฟผ๋ ํธ๋ฆฌ๋ผ๋ ์ด๋ฆ์ด ๋ถ์๋๋ฐ, ์ด์ ์ ๋ช ํ ์ฌ์ฉ์ฒ ์ค ํ๋๋ ๊ฒ์ ์๊ณผ ํฐ ์๋ฐ์ ์๋ ํ๋ฐฑ ๊ทธ๋ฆผ์ ์์ถํด ํํํ๋ ๊ฒ์ ๋๋ค. ์ฟผ๋ ํธ๋ฆฌ๋ 2^N*2^N ํฌ๊ธฐ์ ํ๋ฐฑ ๊ทธ๋ฆผ์ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์ณ ๋ฌธ์์ด๋ก ์์ถํฉ๋๋ค. ์ด ๊ทธ๋ฆผ์ ๋ชจ๋ ํฝ์ ์ด ๊ฒ์ ์์ผ ๊ฒฝ์ฐ ์ด ๊ทธ๋ฆผ์ ์ฟผ๋ ํธ๋ฆฌ ์์ถ ๊ฒฐ๊ณผ๋ ๊ทธ๋ฆผ์ ํฌ๊ธฐ์ ๊ด๊ณ์์ด b๊ฐ ๋ฉ๋๋ค. ์ด ๊ทธ๋ฆผ์ ๋ชจ๋ ํฝ์ ์ด ํฐ ์์ผ ๊ฒฝ์ฐ ์ด ๊ทธ๋ฆผ์ ์ฟผ๋ ํธ๋ฆฌ ์์ถ ๊ฒฐ๊ณผ๋ ๊ทธ๋ฆผ์ ํฌ๊ธฐ์ ๊ด๊ณ์์ด w๊ฐ ๋ฉ๋๋ค. ๋ชจ๋ ํฝ์ ์ด ๊ฐ์ ์์ด ..
7. ๋ถํ ์ ๋ณต 7.1 ๋์ ๋ถํ ์ ๋ณต( Divide & Conquer)์ ๊ฐ์ฅ ์ ๋ช ํ ์๊ณ ๋ฆฌ์ฆ ๋์์ธ ํจ๋ฌ๋ค์์ผ๋ก, ๊ฐ๊ฐ ๊ฒฉํ๋ผ๊ณ ์ค๋ช ํ ์ ์์ ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ๋ ์ด์์ ๋ถ๋ถ ๋ฌธ์ ๋ก ๋๋ ํ, ์ฌ๊ท ํธ์ถ์ ์ด์ฉํด ๊ฐ๊ฐ์ ๋ต์ ๊ณ์ฐํ๊ณ , ๋ถ๋ถ ๋ฌธ์ ์ ๋ต์ ์ด์ฉํด ์ ์ฒด์ ๋ต์ ๊ณ์ฐํ๋ ๋ฐฉ์ ์๊ณ ๋ฆฌ์ฆ ๊ตฌ์ฑ divide ๋ฌธ์ ๋ฅผ ๋ ์์ ๋ฌธ์ ๋ก ๋ถํ merge ๊ฐ ๋ฌธ์ ์ ๋ต์ ์ ์ฒด ๋ฌธ์ ์ ๋ต์ผ๋ก ๋ณํฉ base case ๋์ด์ ๋ต์ ๋ถํ ํ์ง ์๊ณ ํ ์ ์๋ ๋งค์ฐ ์์ ๋ฌธ์ ์ ์ฉ๊ฐ๋ฅํ ๋ฌธ์ ์ ํน์ฑ ๋ฌธ์ ๋ฅผ ๋ถ๋ถ ๋ฌธ์ ๋ก ๋๋๋ ์์ฐ์ค๋ฌ์ด ๋ฐฉ๋ฒ์ด ์กด์ฌํด์ผํจ ๋ถ๋ถ ๋ฌธ์ ์ ๋ต์ ์กฐํฉํด ์ ์ฒด ๋ฌธ์ ์ ๋ต์ ๊ณ์ฐํ๋ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ด ์์ด์ผํจ ์ฅ์ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ์์ ์์ ์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํด์ค ์์ : ์์ด์ ๋น ๋ฅธ ํฉ๊ณผ ํ๋ ฌ์ ๋น ๋ฅธ..
๋ฌธ์ ํ์๋ 2์ฐจ์ ๋ฐฐ์ด (ํญ์ 2^N * 2^N ํฌ๊ธฐ์ด๋ค)์ Z๋ชจ์์ผ๋ก ํ์ํ๋ ค๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด, 2*2๋ฐฐ์ด์ ์ผ์ชฝ ์์นธ, ์ค๋ฅธ์ชฝ ์์นธ, ์ผ์ชฝ ์๋์นธ, ์ค๋ฅธ์ชฝ ์๋์นธ ์์๋๋ก ๋ฐฉ๋ฌธํ๋ฉด Z๋ชจ์์ด๋ค. ๋ง์ฝ, 2์ฐจ์ ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ 2^N * 2^N๋ผ์ ์ผ์ชฝ ์์ ์๋ ์นธ์ด ํ๋๊ฐ ์๋๋ผ๋ฉด, ๋ฐฐ์ด์ 4๋ฑ๋ถ ํ ํ์ (ํฌ๊ธฐ๊ฐ ๊ฐ์ 2^(N-1)๋ก) ์ฌ๊ท์ ์ผ๋ก ์์๋๋ก ๋ฐฉ๋ฌธํ๋ค. ๋ค์ ์๋ 2^2 * 2^2 ํฌ๊ธฐ์ ๋ฐฐ์ด์ ๋ฐฉ๋ฌธํ ์์์ด๋ค. N์ด ์ฃผ์ด์ก์ ๋, (r, c)๋ฅผ ๋ช ๋ฒ์งธ๋ก ๋ฐฉ๋ฌธํ๋์ง ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋ค์ ๊ทธ๋ฆผ์ N=3์ผ ๋์ ์์ด๋ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ N r c๊ฐ ์ฃผ์ด์ง๋ค. N์ 15๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๊ณ , r๊ณผ c๋ 0๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 2^N-1๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค ์ถ๋ ฅ..
๋ฌธ์ ์ง๋ฏผ์ด๋ N์ชฝ์ธ ์ฑ ์ด ํ๊ถ ์๋ค. ์ฒซ ํ์ด์ง๋ 1์ชฝ์ด๊ณ , ๋ง์ง๋ง ํ์ด์ง๋ N์ชฝ์ด๋ค. ๊ฐ ์ซ์๊ฐ ๋ชจ๋ ๋ช ๋ฒ์ด ๋์ค๋์ง ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. N์ 1,000,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ์ถ๋ ฅ ์ฒซ์งธ ์ค์ 0์ด ์ด ๋ช ๋ฒ ๋์ค๋์ง, 1์ด ์ด ๋ช ๋ฒ ๋์ค๋์ง, ..., 9๊ฐ ์ด ๋ช ๋ฒ ๋์ค๋์ง๋ฅผ ์ถ๋ ฅํ๋ค. ๋์ ๋ต ์๊ณ ๋ฆฌ์ฆ ์ฒซ๋ฒ์งธ ์ฝ๋ ์์๋ฅผ ๋ง์ด ์ป๊ธฐ ์ํด ์ ์ฒด ๊ฒฝ์ฐ์ ์ ๊ตฌํ๋ ๊ฐ์ฅ ๊ฐ๋จํ ์๊ณ ๋ฆฌ์ฆ ๋จผ์ ๊ตฌํ n_list = list() for z in range(0,1): n_list.append(int(input())) for n in n_list: num_result = [0,0,0,0,0,0,0,0,0,0] for i in range(1,..
Comment