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์ด ์์ฌ ์์ผ๋ฉด ์ ์ฒด๋ฅผ ํ ๋ฒ์ ๋ํ๋ด์ง๋ฅผ ๋ชปํ๊ณ , ์ผ์ชฝ ์, ์ค๋ฅธ์ชฝ ์, ์ผ์ชฝ ์๋, ์ค๋ฅธ์ชฝ ์๋, ์ด๋ ๊ฒ ..
๋ฌธ์ ํ์๋ 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,..
https://www.acmicpc.net/problem/4811 ๋ฌธ์ 70์ธ ๋ฐ์ข ์ ํ ์๋ฒ์ง๋ ๋งค์ผ ๋งค์ผ ์ฝ ๋ฐ์์ ๋จน๋๋ค. ์๋ ์ ์์ด๋ ์ข ์ ํ ์๋ฒ์ง์๊ฒ ์ฝ์ด N๊ฐ ๋ด๊ธด ๋ณ์ ์ ๋ฌผ๋ก ์ฃผ์๋ค. ์ฒซ์งธ ๋ ์ ์ข ์๋ ๋ณ์์ ์ฝ ํ๋๋ฅผ ๊บผ๋ธ๋ค. ๊ทธ ๋ค์, ๊ทธ ์ฝ์ ๋ฐ์ผ๋ก ์ชผ๊ฐ์ ํ ์กฐ๊ฐ์ ๋จน๊ณ , ๋ค๋ฅธ ์กฐ๊ฐ์ ๋ค์ ๋ณ์ ๋ฃ๋๋ค. ๋ค์ ๋ ๋ถํฐ ์ข ์๋ ๋ณ์์ ์ฝ์ ํ๋ ๊บผ๋ธ๋ค. (์ฝ์ ํ ์กฐ๊ฐ ์ ์ฒด ์ผ ์๋ ์๊ณ , ์ชผ๊ฐ ๋ฐ ์กฐ๊ฐ ์ผ ์๋ ์๋ค) ๋ฐ ์กฐ๊ฐ์ด๋ผ๋ฉด ๊ทธ ์ฝ์ ๋จน๊ณ , ์๋๋ผ๋ฉด ๋ฐ์ ์ชผ๊ฐ์ ํ ์กฐ๊ฐ์ ๋จน๊ณ , ๋ค๋ฅธ ์กฐ๊ฐ์ ๋ค์ ๋ณ์ ๋ฃ๋๋ค. ์ข ์๋ ์๋ ์๊ฒ ํ ์กฐ๊ฐ์ ๊บผ๋ธ ๋ ์๋ W๋ฅผ, ๋ฐ ์กฐ๊ฐ์ ๊บผ๋ธ ๋ ์๋ H ๋ณด๋ธ๋ค. ์๋ ๋ ํ ์๋ฒ์ง์๊ฒ ๋ฐ์ ๋ฌธ์๋ฅผ ์ข ์ด์ ๊ธฐ๋กํด ๋๋๋ค. ์ด 2N์ผ์ด ์ง๋๋ฉด ๊ธธ์ด๊ฐ 2N์ธ..
6.8 ๋ฌธ์ : ์๊ณ ๋ง์ถ๊ธฐ (๋ฌธ์ ID: CLOCKSYNC, ๋์ด๋: ์ค) ๋ฌธ์ 4x4 ๊ฒฉ์ ํํ๋ก ๋ฐฐ์น๋ ์ด์ฌ์ฏ ๊ฐ์ ์๊ณ๊ฐ ์์ต๋๋ค. ์ด ์๊ณ๋ค์ ๋ชจ๋ 12์, 3์, 6์, ํน์ 9์๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๋๋ฐ, ์ด ์๊ณ๋ค์ด ๋ชจ๋ 12์๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ๋ฐ๊พธ๊ณ ์ถ์ต๋๋ค. ์๊ณ์ ์๊ฐ์ ์กฐ์ํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์ด ๊ฐ์ ์ค์์น๋ค์ ์กฐ์ํ๋ ๊ฒ์ผ๋ก, ๊ฐ ์ค์์น๋ค์ ๋ชจ๋ ์ ๊ฒ๋ ์ธ ๊ฐ์์ ๋ง๊ฒ๋ ๋ค์ฏ ๊ฐ์ ์๊ณ์ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ํ ์ค์์น๋ฅผ ๋๋ฅผ ๋๋ง๋ค, ํด๋น ์ค์์น์ ์ฐ๊ฒฐ๋ ์๊ณ๋ค์ ์๊ฐ์ 3์๊ฐ์ฉ ์์ผ๋ก ์์ง์ ๋๋ค. (12์์ผ๋๋ 3์๋ก, 3์=>6์, 6์ =>9์, 9์=>12์) ์ค์์น๋ค๊ณผ ๊ทธ๋ค์ด ์ฐ๊ฒฐ๋ ์๊ณ๋ค์ ๋ชฉ๋ก์ด ์ฃผ์ด์ง๊ณ ํ์ฌ ๊ฐ๋ฆฌํค๋ ์๊ฐ๋ค์ด ์ฃผ์ด์ก์ ๋ ๋ชจ๋ ์๊ณ๋ฅผ 12์๋ก ๋๋ฆฌ๊ธฐ ์ํด ์ต์ํ ..
6.5 ๋ฌธ์ : ๊ฒ์ํ ๋ฎ๊ธฐ (๋ฌธ์ ID: BOARDCOVER, ๋์ด๋: ํ) ๋ฌธ์ H X W ํฌ๊ธฐ์ ๊ฒ์ํ์ด ์์ต๋๋ค. ๊ฒ์ํ์ ๊ฒ์ ์นธ๊ณผ ํฐ ์นธ์ผ๋ก ๊ตฌ์ฑ๋ ๊ฒฉ์ ๋ชจ์์ ํ๊ณ ์๋๋ฐ ์ด ์ค ๋ชจ๋ ํฐ ์นธ์ ์ธ ์นธ์ง๋ฆฌ L์ ๋ชจ์์ ๋ธ๋ก์ผ๋ก ๋ฎ๊ณ ์ถ์ต๋๋ค. ์ด๋ ๋ธ๋ก๋ค์ ์์ ๋กญ๊ฒ ํ์ ํด์ ๋์ ์ ์์ง๋ง, ์๋ก ๊ฒน์น๊ฑฐ๋, ๊ฒ์ ์นธ์ ๋ฎ๊ฑฐ๋, ๊ฒ์ํ ๋ฐ์ผ๋ก ๋๊ฐ์๋ ์ ๋ฉ๋๋ค. ๋ค์ ๊ทธ๋ฆผ์ ํ ๊ฒ์ํ๊ณผ ์ด๋ฅผ ๋ฎ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ๊ฒ์ํ์ด ์ฃผ์ด์ง ๋ ์ด๋ฅผ ๋ฎ๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. ์๊ฐ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ ํ ํ๋ก๊ทธ๋จ์ 2์ด ์์ ์คํ๋์ด์ผ ํ๋ฉฐ, 64MB ์ดํ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ผ๋ง ํฉ๋๋ค. ์ ๋ ฅ ์ ๋ ฅ์ ์ฒซ ์ค์๋ ํ ์คํธ ์ผ์ด์ค์ ์ C(C=0 and tmp[0]=0 and tmp[1]=0 ..
https://www.acmicpc.net/problem/2839 ๋์ ๋ต # ๋ฐฑ์ค 2839๋ฒ : ์คํ ๋ฐฐ๋ฌ # 2020-02-01 num = int(input()) count = 0 while num>=3 : if not(num%5) : # 5์ ๋ฐฐ์์ด๋ฉด count+= num/5 break else : count+=1 num-=3 if num==1 or num==2: count = -1 else : count += 0 print(int(count)) ๋ถ์ ๋ค์ด๋๋ฏน ์๊ณ ๋ฆฌ์ฆ ์์ 2๋ฌธ์ ์ ์ํฅ์ผ๋ก ์ฒ์์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฐพ์๋ณผ๊น ์๊ฐํ๋ค. ํ์ง๋ง ์ด์ ๋ฌธ์ ์ ๋ฌ๋ฆฌ ์์ ๋ฒ์๊ฐ ํ์ฐํ ์ปค์ง๋ฐ๋ค๊ฐ ์ฐ์ฐ์ ์๊ฐ์ด ๋๋ฌด ์ค๋๊ฑธ๋ฆด ๊ฒ ๊ฐ์์ ์ด๋ฌํ ๋ฐฉ์์ ์๋ ๊ฑฐ๋ผ๊ณ ๊ฒฐ๋ก ๋ด๋ ธ๋ค. ๊ฒฝ์ฐ์ ์ (ํน์ง ์ฐพ๊ธฐ) ๊ทธ..
๋ฌธ์ : ๋ฐฑ์ค 9095๋ฒ _ 1,2,3 ๋ํ๊ธฐ https://www.acmicpc.net/problem/9095 ๋์ ๋ต # ๋ฐฑ์ค 9095๋ฒ: 1,2,3 ๋ํ๊ธฐ # 2020-02-01 case = int(input()) # ์ ๋ ฅ๋ฐ๊ธฐ num = [] def cpt_num(n): if n>3: # 3๋ณด๋ค ํฌ๋ฉด return cpt_num(n-3) + cpt_num(n-2) + cpt_num(n-1) elif n==3: # 3์ด๋ฉด return 4 elif n==2: # 2์ด๋ฉด return 2 elif n==1: # 1์ด๋ฉด return 1 while case : case-=1 num.append(int(input())) for n in num: print(cpt_num(n)) ์ด์ ๋ฐฐ์ ๋ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ ํ..
Comment