https://www.acmicpc.net/problem/18808 #include #include using namespace std; int n, m, k; int turn; int st_l, st_w; struct sticker { int x_len, y_len; }; void rotateSticker(vector& stic) { int width = stic[0].size(); int length = stic.size(); vector tmp(width, vector(length)); for (int i = 0; i < length; i++) { for (int j = 0; j < width; j++) { tmp[j][length-1-i] = stic[i][j]; } } stic = tmp; } ..
๋ฌธ์ : ๋ฐฑ์ค 17836๋ฒ _ ๊ณต์ฃผ๋์ ๊ตฌํด๋ผ! https://www.acmicpc.net/problem/17836 ์๊ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ ์ถ ์ ๋ต ๋ง์ ์ฌ๋ ์ ๋ต ๋น์จ 1 ์ด 256 MB 2465 566 431 21.923% ๋ฌธ์ ์ฉ์ฌ๋ ๋ง์์ด ์จ๊ฒจ๋์ ๊ณต์ฃผ๋์ ๊ตฌํ๊ธฐ ์ํด (N, M) ํฌ๊ธฐ์ ์ฑ ์ ๊ตฌ (1,1)์ผ๋ก ๋ค์ด์๋ค. ๋ง์์ ์ฉ์ฌ๊ฐ ๊ณต์ฃผ๋ฅผ ์ฐพ์ง ๋ชปํ๋๋ก ์ฑ์ ์ฌ๋ฌ ๊ตฐ๋ฐ ๋ง๋ฒ ๋ฒฝ์ ์ธ์๋์๋ค. ์ฉ์ฌ๋ ํ์ฌ์ ๊ฐ์ง๊ณ ์๋ ๋ฌด๊ธฐ๋ก๋ ๋ง๋ฒ ๋ฒฝ์ ํต๊ณผํ ์ ์์ผ๋ฉฐ, ๋ง๋ฒ ๋ฒฝ์ ํผํด (N, M) ์์น์ ์๋ ๊ณต์ฃผ๋์ ๊ตฌ์ถํด์ผ๋ง ํ๋ค. ๋ง์์ ์ฉ์ฌ๋ฅผ ๊ดด๋กญํ๊ธฐ ์ํด ๊ณต์ฃผ์๊ฒ ์ ์ฃผ๋ฅผ ๊ฑธ์๋ค. ์ ์ฃผ์ ๊ฑธ๋ฆฐ ๊ณต์ฃผ๋ T์๊ฐ ์ด๋ด๋ก ์ฉ์ฌ๋ฅผ ๋ง๋์ง ๋ชปํ๋ค๋ฉด ์์ํ ๋๋ก ๋ณํ๊ฒ ๋๋ค. ๊ณต์ฃผ๋์ ๊ตฌ์ถํ๊ณ ํ๋ฌํฌ์ฆ ํ๊ณ ..
๋ฌธ์ : ๋ฐฑ์ค 1260๋ฒ _ DFS์ BFS ์๊ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ ์ถ ์ ๋ต ๋ง์ ์ฌ๋ ์ ๋ต ๋น์จ 2 ์ด 128 MB 87845 28912 16832 31.543% ๋ฌธ์ ๊ทธ๋ํ๋ฅผ DFS๋ก ํ์ํ ๊ฒฐ๊ณผ์ BFS๋ก ํ์ํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋จ, ๋ฐฉ๋ฌธํ ์ ์๋ ์ ์ ์ด ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ์๋ ์ ์ ๋ฒํธ๊ฐ ์์ ๊ฒ์ ๋จผ์ ๋ฐฉ๋ฌธํ๊ณ , ๋ ์ด์ ๋ฐฉ๋ฌธํ ์ ์๋ ์ ์ด ์๋ ๊ฒฝ์ฐ ์ข ๋ฃํ๋ค. ์ ์ ๋ฒํธ๋ 1๋ฒ๋ถํฐ N๋ฒ๊น์ง์ด๋ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ์ ์ ์ ๊ฐ์ N(1 ≤ N ≤ 1,000), ๊ฐ์ ์ ๊ฐ์ M(1 ≤ M ≤ 10,000), ํ์์ ์์ํ ์ ์ ์ ๋ฒํธ V๊ฐ ์ฃผ์ด์ง๋ค. ๋ค์ M๊ฐ์ ์ค์๋ ๊ฐ์ ์ด ์ฐ๊ฒฐํ๋ ๋ ์ ์ ์ ๋ฒํธ๊ฐ ์ฃผ์ด์ง๋ค. ์ด๋ค ๋ ์ ์ ์ฌ์ด์ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ์ด ์์ ์ ์๋ค. ์ ๋ ฅ์ผ๋ก..
๋ฌธ์ ๊ฐ์ฅ ๋ฉค๋ฒ๊ฐ ๋ง์ ์์ด๋ ๊ทธ๋ฃน์ผ๋ก ๊ธฐ๋ค์ค ๋ถ์ ์ฌ๋ผ ์๋ ํผ์ฑ ํ ๊ทธ๋ฃน ํ์ดํผ์๋์ด๊ฐ ๋ฐ๋ท 10์ฃผ๋ ๊ธฐ๋ ํฌ ๋ฏธํ ์ ๊ฐ์ตํ์ต๋๋ค. ํฌ ๋ฏธํ ์ ํ ์์๋ก, ๋ฉค๋ฒ๋ค๊ณผ ์ฐธ๊ฐํ ํฌ๋ค์ด ํฌ์น์ ํ๋ ํ์ฌ๋ฅผ ๊ฐ๊ธฐ๋ก ํ์ต๋๋ค. ํ์ดํผ์๋์ด์ ๋ฉค๋ฒ๋ค์ ์ฐ์ ๋ฌด๋์ ์ผ๋ ฌ๋ก ์ญ๋๋ค. ํฌ ๋ฏธํ ์ ์ฐธ๊ฐํ M๋ช ์ ํฌ๋ค์ ์ค์ ์์ ๋งจ ์ค๋ฅธ์ชฝ ๋ฉค๋ฒ์์๋ถํฐ ์์ํด ํ ๋ช ์ฉ ์ผ์ชฝ์ผ๋ก ์์ง์ด๋ฉฐ ๋ฉค๋ฒ๋ค๊ณผ ํ๋์ฉ ํฌ์น์ ํฉ๋๋ค. ๋ชจ๋ ํฌ๋ค์ ๋์์ ํ ๋ช ์ฉ ์์ง์ ๋๋ค. ์๋ ๊ทธ๋ฆผ์ ํ์ฌ ๊ณผ์ ์ ์ผ๋ถ๋ฅผ ๋ณด์ฌ์ค๋๋ค. a~d๋ ๋ค ๋ช ์ ํ์ดํผ์๋์ด ๋ฉค๋ฒ๋ค์ด๊ณ , 0~5๋ ์ฌ์ฏ ๋ช ์ ํฌ๋ค์ ๋๋ค. ํ์ง๋ง ํ์ดํผ์๋์ด์ ๋จ์ฑ ๋ฉค๋ฒ๋ค์ด ๋จ์ฑ ํฌ๊ณผ ํฌ์นํ๊ธฐ๊ฐ ๋ฏผ๋งํ๋ค๊ณ ์ฌ๊ฒจ์, ๋จ์ฑ ํฌ๊ณผ๋ ํฌ์น ๋์ ์ ์๋ฅผ ํ๊ธฐ๋ก ํ์ต๋๋ค. ์ค์ ์ ๋ฉค๋ฒ๋ค๊ณผ ํฌ๋ค..
์ธ๊ทธ๋จผํธ ํธ๋ฆฌ https://www.acmicpc.net/blog/view/9 ๋ฐฑ์ค๋ ๊ธ ๋ฐฐ์ด ํฌ๊ธฐ ๊ฒฐ์ ์ธ๊ทธ๋จผํธ ํธ๋ฆฌ๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ C++์ ๊ฒฝ์ฐ, vector ์๋ฃํ์ ์ฌ์ฉํ๋๋ฐ python์ผ๋ก ๊ตฌํํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ค. ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ์ผ๋ง๋ ๋์ด์ผ ํ ์ง ๊ฐ๋ ํ๊ธฐ ์ํด ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํด๋ณด์. 2์ ์ ๊ณฑ ์๊ฐ ๋ฆฌํ ๋ ธ๋์ ์(n)๋ก ์ฃผ์ด์ง๋ค๋ฉด ( ๋ถ์ํด์ผํ data ๊ฐฏ์๊ฐ 2์ ์ ๊ณฑ ์๋ผ๋ฉด ) ๊ฐ ๋จ๊ณ๋ง๋ค 1/2์ฉ ์ค์ด๋๊ฐ๋ฏ๋ก log(n)์ด ํ์ํ ์ด ๋จ๊ณ(ํ์ดํ)๊ฐ ๋๊ณ ์ ์ฒด ์ธต์ ๊ฐฏ์, ์ฆ ๋์ด(h)๋ log(n)+1์ด ๋๋ค. ์ต์์ ๋ ธ๋๋ถํฐ 2^(0)๊ฐ์ ๋ ธ๋๋ก ์์ํ์ฌ ์ธต์ด ์ฆ๊ฐํ ์๋ก 2์ ์ง์ ๋ํ ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ ๊ฝ์ฐฌ ์ด์ค ํธ๋ฆฌ(full binary tree)์ ์ด ๋ ธ๋ ..
๊ณต์ฃผ๋์ ๊ตฌํด๋ผ! ์๊ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ ์ถ ์ ๋ต ๋ง์ ์ฌ๋ ์ ๋ต ๋น์จ 1 ์ด 256 MB 2397 551 418 22.012% ๋ฌธ์ ์ฉ์ฌ๋ ๋ง์์ด ์จ๊ฒจ๋์ ๊ณต์ฃผ๋์ ๊ตฌํ๊ธฐ ์ํด (N, M) ํฌ๊ธฐ์ ์ฑ ์ ๊ตฌ (1,1)์ผ๋ก ๋ค์ด์๋ค. ๋ง์์ ์ฉ์ฌ๊ฐ ๊ณต์ฃผ๋ฅผ ์ฐพ์ง ๋ชปํ๋๋ก ์ฑ์ ์ฌ๋ฌ ๊ตฐ๋ฐ ๋ง๋ฒ ๋ฒฝ์ ์ธ์๋์๋ค. ์ฉ์ฌ๋ ํ์ฌ์ ๊ฐ์ง๊ณ ์๋ ๋ฌด๊ธฐ๋ก๋ ๋ง๋ฒ ๋ฒฝ์ ํต๊ณผํ ์ ์์ผ๋ฉฐ, ๋ง๋ฒ ๋ฒฝ์ ํผํด (N, M) ์์น์ ์๋ ๊ณต์ฃผ๋์ ๊ตฌ์ถํด์ผ๋ง ํ๋ค. ๋ง์์ ์ฉ์ฌ๊ฐ ๊ดด๋กญํ๊ธฐ ์ํด ๊ณต์ฃผ์๊ฒ ์ ์ฃผ๋ฅผ ๊ฑธ์๋ค. ์ ์ฃผ์ ๊ฑธ๋ฆฐ ๊ณต์ฃผ๋ T์๊ฐ ์ด๋ด๋ก ์ฉ์ฌ๋ฅผ ๋ง๋์ง ๋ชปํ๋ค๋ฉด ์์ํ ๋๋ก ๋ณํ๊ฒ ๋๋ค. ๊ณต์ฃผ๋์ ๊ตฌ์ถํ๊ณ ํ๋ฌํฌ์ฆ๋ฅผ ๋ฐ๋์ ํ๊ณ ์ถ์ ์ฉ์ฌ๋ T์๊ฐ ๋ด์ ๋ฐ๋์ ๊ณต์ฃผ๋์ด ์๋ ๊ณณ์ผ๋ก ๋๋ฌํด์ผ ํ๋ค. ์ฉ์ฌ๋ ํ ์นธ์ ์ด๋..
๋ฌํฝ์ด ๋ฆฌ์คํธ ์๊ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ ์ถ ์ ๋ต ๋ง์ ์ฌ๋ ์ ๋ต ๋น์จ 1 ์ด 256 MB 597 219 175 40.984% ๋ฌธ์ ์์ง์ด๋ ๋ฌํฝ์ด๋ฅผ ์ข์ํ๋ค. ๋ฌํฝ์ด๋ฅผ ๋๋ฌด๋๋ฌด ์ข์ํ๊ธฐ ๋๋ฌธ์ ํน์ ํ ๋ชจ์์ ๋จ๋ฐฉํฅ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๋ฌํฝ์ด ๋ฆฌ์คํธ๋ผ๋ ์ด๋ฆ์ ๋ถ์ฌ์ฃผ์๋ค. ์ผ๋ฐ์ ์ธ ์ ํ ๋จ๋ฐฉํฅ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๊ฐ ๋ ธ๋ ๋ฒํธ๋ฅผ ์ฐ๊ฒฐ๋ ์์๋๋ก 1, 2, ..., N์ด๋ผ ํ์. ์ด๋ N๋ฒ ๋ ธ๋๋ ์๋ฌด ๋ ธ๋๋ ๊ฐ๋ฆฌํค์ง ์๋๋ฐ, ์ฌ๊ธฐ์ N๋ฒ ๋ ธ๋๊ฐ 1๋ฒ ๋ ธ๋๋ฅผ ์ ์ธํ ์์์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌ์ผ ์ฌ์ดํด์ ์ด๋ฃจ๊ฒ ๋๋ ๋ฆฌ์คํธ๋ฅผ ๋ฌํฝ์ด ๋ฆฌ์คํธ๋ผ๊ณ ํ๋ค. ๋ฌํฝ์ด ๋ฆฌ์คํธ๋ ๊ฐ ๋ ธ๋๋น ํ๋์ ์ ์๋ฅผ ์ ์ฅํ๋ค. ์ฆ, ๋ฌํฝ์ด ๋ฆฌ์คํธ๋ ๋ค์๊ณผ ๊ฐ์ด ์๊ธด ์ฐ๊ฒฐ๋ฆฌ์คํธ์ด๋ค. ๋ ธ๋ ์์ ์๋ ์ ์ฅ๋ ๊ฐ์ ๋ปํ๋ค. "๋ฌํฝ์ ๋ฌํฝ์ 1๋ฒ ๋ ธ๋๋ถํฐ ํ ์นธ์ฉ..
์๊ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ ์ถ ์ ๋ต ๋ง์ ์ฌ๋ ์ ๋ต ๋น์จ 2 ์ด 128 MB 20321 8384 6181 41.113% ๋ฌธ์ ์ด๋ค ์์ฐ์ N์ ๊ทธ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ๊ณฑ์๋ค์ ํฉ์ผ๋ก ๋ํ๋ผ ์ ์๋ค. ์๋ฅผ ๋ค์ด 11=32+12+12(3๊ฐ ํญ)์ด๋ค. ์ด๋ฐ ํํ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ๋ ์ ์๋๋ฐ, 11์ ๊ฒฝ์ฐ 11=22+22+12+12+12(5๊ฐ ํญ)๋ ๊ฐ๋ฅํ๋ค. ์ด ๊ฒฝ์ฐ, ์ํ์ ์ํฌ๋ผํ ์ค๋ “11์ 3๊ฐ ํญ์ ์ ๊ณฑ์ ํฉ์ผ๋ก ํํํ ์ ์๋ค.”๋ผ๊ณ ๋งํ๋ค. ๋ํ 11์ ๊ทธ๋ณด๋ค ์ ์ ํญ์ ์ ๊ณฑ์ ํฉ์ผ๋ก ํํํ ์ ์์ผ๋ฏ๋ก, 11์ ๊ทธ ํฉ์ผ๋ก์จ ํํํ ์ ์๋ ์ ๊ณฑ์ ํญ์ ์ต์ ๊ฐ์๋ 3์ด๋ค. ์ฃผ์ด์ง ์์ฐ์ N์ ์ด๋ ๊ฒ ์ ๊ณฑ์๋ค์ ํฉ์ผ๋ก ํํํ ๋์ ๊ทธ ํญ์ ์ต์๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์..
Comment