๋ชฉ๋ก์ ์ฒด ๊ธ (1099)
KoreanFoodie's Study
ํ๋ก๊ทธ๋๋ฐ ๋ํ์์ ๋ฐฐ์ฐ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ ์ ๋ต(์ดํ ์ข ๋ง๋ถ)์์ ์๊ฐ๋ ๋ฌธ์ ๋ฅผ ํ์ดํฉ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ง์ฌ์ด์๋ผ๋ฉด, ์ง์ ๊ตฌ๋งคํ์ ์ ์ฝ์ด๋ณด์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค! ํต์ฌ : 1. ์์ฃผ์จ ๊ฐ์๊ฑฐ ์ข ์ธ์ฐ๊ณ ๋ค๋์ง ๋ง์; [์ข ๋ง๋ถ ๋ฌธ์ ] ์์ฃผ์จ ์ธ์ฐ๊ธฐ (๋ฌธ์ ID : PI, ๋์ด๋ : ํ) ๋ฌธ์ ์์ฒด๋ ์ด๋ ต์ง ์๋ค! ๊ทธ๋ฅ ์ ํ์๋ง ์ ์ธ์ฐ๋ฉด ๋๋๋ฐ... ์ผ๋จ ์ฝ๋๋ฅผ ๋ณด์. #include #include "stdlib.h" #include #include #include using namespace std; int N; vector arr; vector cache; int diff(int i, int j) { if (i > j) return 0; if (j >= N) return 10; if ((j - i ..
ํ๋ก๊ทธ๋๋ฐ ๋ํ์์ ๋ฐฐ์ฐ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ ์ ๋ต(์ดํ ์ข ๋ง๋ถ)์์ ์๊ฐ๋ ๋ฌธ์ ๋ฅผ ํ์ดํฉ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ง์ฌ์ด์๋ผ๋ฉด, ์ง์ ๊ตฌ๋งคํ์ ์ ์ฝ์ด๋ณด์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค! ํต์ฌ : 1. ์ ํ์์ ์ ์ธ์๋ณด์. [์ข ๋ง๋ถ ๋ฌธ์ ] ํฉ์น LIS (๋ฌธ์ ID : JLIS, ๋์ด๋ : ํ) ์ด๊ฒ๋ LIS ์ ๋น์ทํ ๋ก์ง์ ์ ์ฉํ๋ฉด ๋๋ค. ์ผ๋จ, jlis ํจ์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ ๊ฒ์ด๋ค. jlis(indexA, indexB) = A[indexA] ์ B[indexB] ์์ ์์ํ๋ ํฉ์น ์ฆ๊ฐ ๋ถ๋ถ์์ด์ ์ต๋ ๊ธธ์ด ์์๋ฅผ ๋ฑํ ์ง์ ํ์ง๋ ์์์ผ๋ A[indexA] ์B[indexB] ์ค ์์ ์ชฝ์ด ์์ ์จ๋ค๊ณ ๊ฐ์ ํ์. ๊ทธ๋ผ ์ ํ์์ ์๋์ ๊ฐ์ด ์ธ์ธ ์ ์๋ค. ๊ทธ๋ผ ์์ ์ ํ์์ ์ค์ ๋ก ๊ตฌํํด ๋ณด์! ๐ #include ..
ํ๋ก๊ทธ๋๋ฐ ๋ํ์์ ๋ฐฐ์ฐ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ ์ ๋ต(์ดํ ์ข ๋ง๋ถ)์์ ์๊ฐ๋ ๋ฌธ์ ๋ฅผ ํ์ดํฉ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ง์ฌ์ด์๋ผ๋ฉด, ์ง์ ๊ตฌ๋งคํ์ ์ ์ฝ์ด๋ณด์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค! ํต์ฌ : 1. ๋จผ์ ์์ ํ์๋ถํฐ ์์ํด๋ณด์. ๊ทธ ํ, ์ ์ฒด ๋ต์ ์ ์๋ฅผ ๋ฐํํ๋ ๊ฒ์ด ์๋๋ผ ์์ผ๋ก ๋จ์ ์ ํ๋ค์ ํด๋นํ๋ ์ ์๋ง์ ๋ฐํํ๋๋ก ๋ถ๋ถ ๋ฌธ์ ์ ์๋ฅผ ๋ฐ๊พธ์. 2. ์ฌ๊ท ํธ์ถ์์ ์ด์ ์ ์ ํ๊ณผ ๊ด๋ จ๋ ์ ๋ณด๋ ์ต๋ํ ์ค์ด์. ๊ทธ๋ผ์ผ๋ก์จ, ์ฐ๋ฆฌ๋ ์ต๋ํ ์ค๋ณต๋๋ ๋ฌธ์ ๋ฅผ ๋ง์ด ๋ง๋ค์ด๋ผ ์ ์๋ค. [์ข ๋ง๋ถ ๋ฌธ์ ] ์ต๋ ์ฆ๊ฐ ๋ถ๋ถ ์์ด (๋ฌธ์ ID : LIS, ๋์ด๋ : ํ) ์ผ๋จ, ์๋์ ๊ฐ์ด ๊ฐ๋จํ๊ฒ for-loop ์ผ๋ก ํ์ด๋ณผ ์ ์๋ค. #include #include "stdlib.h" #include #include using n..
ํ๋ก๊ทธ๋๋ฐ ๋ํ์์ ๋ฐฐ์ฐ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ ์ ๋ต(์ดํ ์ข ๋ง๋ถ)์์ ์๊ฐ๋ ๋ฌธ์ ๋ฅผ ํ์ดํฉ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ง์ฌ์ด์๋ผ๋ฉด, ์ง์ ๊ตฌ๋งคํ์ ์ ์ฝ์ด๋ณด์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค! ํต์ฌ : 1. ํ๋ฒํ DP ๋ฌธ์ ๋ก, for-loop ํน์ ์ฌ๊ทํจ์๋ก ํ ์ ์๋ค. [์ข ๋ง๋ถ ๋ฌธ์ ] ์ผ๊ฐํ ์์ ์ต๋ ๊ฒฝ๋ก (๋ฌธ์ ID : TRIANGLEPATH, ๋์ด๋ : ํ) ์ผ๋จ for-loop ์ผ๋ก ํผ ๋ฒ์ ์ ๋ณด์. #include #include "stdlib.h" #include #include using namespace std; int N; int tri[100][100]; int cache[100][100]; void sol() { cache[0][0] = tri[0][0]; for (int i = 1; i < N; ++i) ..
ํ๋ก๊ทธ๋๋ฐ ๋ํ์์ ๋ฐฐ์ฐ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ ์ ๋ต(์ดํ ์ข ๋ง๋ถ)์์ ์๊ฐ๋ ๋ฌธ์ ๋ฅผ ํ์ดํฉ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ง์ฌ์ด์๋ผ๋ฉด, ์ง์ ๊ตฌ๋งคํ์ ์ ์ฝ์ด๋ณด์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค! ํต์ฌ : 1. DP ๋ฌธ์ ๋ ์ค๋ณต ๊ณ์ฐ๋๋ ๊ฒ์ด ๋ฌด์์ธ์ง ์ฒดํฌํ๋ ๊ฒ์ด ์ค์ํ๋ค. [์ข ๋ง๋ถ ๋ฌธ์ ] ์์ผ๋์นด๋ (๋ฌธ์ ID : WILDCARD, ๋์ด๋ : ์ค) ์ผ๋จ DP ๋ฅผ ์ด์ฉํด์ ํ ๋ฒ ํ์ด๋ณด์๋ค. ๋ถ๋๋ฝ์ง๋ง ๋๋ ์ฒ์์ ์ด๋ ๊ฒ ํ์๋ค : #include #include "stdlib.h" #include #include #include #include using namespace std; /************************************************************************************..
ํ๋ก๊ทธ๋๋ฐ ๋ํ์์ ๋ฐฐ์ฐ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ ์ ๋ต(์ดํ ์ข ๋ง๋ถ)์์ ์๊ฐ๋ ๋ฌธ์ ๋ฅผ ํ์ดํฉ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ง์ฌ์ด์๋ผ๋ฉด, ์ง์ ๊ตฌ๋งคํ์ ์ ์ฝ์ด๋ณด์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค! ํต์ฌ : 1. DP ๋ฌธ์ ๋ฅผ ํ ๋๋, ๋จผ์ ์์ ํ์์ผ๋ก ํ ์ ์๋์ง ์ฒดํฌ๋ฅผ ํด ๋ณด๊ณ , ๋ฉ๋ชจ์ด์ฌ์ด์ ์ด ๊ฐ๋ฅํ์ง๋ฅผ ํ์ ํ๋ ๊ฒ๋ ์ข์ ์ ๊ทผ ๋ฐฉ๋ฒ์ด๋ค. [์ข ๋ง๋ถ ๋ฌธ์ ] ์ธ๋ฐ ๋ฐ๊ธฐ (๋ฌธ์ ID : JUMPGAME, ๋์ด๋ : ํ) ๋ฐ๋ก.. ์์ ์ฝ๋๋ก ๋ค์ด๊ฐ ๋ณด์. #include #include "stdlib.h" #include #include #include using namespace std; /*********************************************************************************..
ํ๋ก๊ทธ๋๋ฐ ๋ํ์์ ๋ฐฐ์ฐ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ ์ ๋ต(์ดํ ์ข ๋ง๋ถ)์์ ์๊ฐ๋ ๋ฌธ์ ๋ฅผ ํ์ดํฉ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ง์ฌ์ด์๋ผ๋ฉด, ์ง์ ๊ตฌ๋งคํ์ ์ ์ฝ์ด๋ณด์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค! ํต์ฌ : 1. ๋ฌด์ํ๊ฒ ํ๋ฉด, ์๊ฐ ๋ณต์ก๋๊ฐ O(N^2) ๊ฐ ๋์ด ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค. 2. ์นด๋ผ์ธ ๋ฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด ๋ณด์! [์ข ๋ง๋ถ ๋ฌธ์ ] ํฌ๋ฏธํ (๋ฌธ์ ID : FANMEETING, ๋์ด๋ : ์) ํฌ๋ฏธํ ๋ฌธ์ ๋ ์ข ๋ง๋ถ์์ ์ฒ์์ผ๋ก ๋์ค๋ '์' ๋์ด๋์ ๋ฌธ์ ์ด๋ค. ํ์ง๋ง ๊ฑฑ์ ํ์ง ๋ง๋ผ. ์์ ๋๋ณด๋ค ๋น ๋ฅด๋๊น... ๊ทผ๋ฐ ์ฌ์ค ์์ด ๋น ๋ฅธ ๊ฑด ๋ณ๋ก ๋์์ด ์๋๋ค. ์ด์จ๋ , ์ด ๋ฌธ์ ๋ '๋ฌด์ํ๊ฒ' ํผ๋ค๊ณ ํ๋ฉด O(N^2) ๋ก ํ์ด๋ณผ ์๋ ์์ ๊ฒ์ด๋ค. ์์ ์ฝ๋๋ ์๋์ ๊ฐ๋ค(์๊ฐ์ด๊ณผ ํจ์ ์ ์). #include #include "stdl..
ํ๋ก๊ทธ๋๋ฐ ๋ํ์์ ๋ฐฐ์ฐ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ ์ ๋ต(์ดํ ์ข ๋ง๋ถ)์์ ์๊ฐ๋ ๋ฌธ์ ๋ฅผ ํ์ดํฉ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ง์ฌ์ด์๋ผ๋ฉด, ์ง์ ๊ตฌ๋งคํ์ ์ ์ฝ์ด๋ณด์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค! ํต์ฌ : 1. ๋ถํ ์กฐ๊ฑด์ ์ ๋ฐ์ ธ๋ณด์. [์ข ๋ง๋ถ ๋ฌธ์ ] ์ธํ๋ฆฌ ์๋ผ๋ด๊ธฐ (๋ฌธ์ ID : FENCE, ๋์ด๋ : ์ค) ์ด ๋ฌธ์ ๋ ์๋์ฒ๋ผ ๋ฌด์ํ๊ฒ ํ๋ฉด O(N^2) ์ ํ ์๋ ์์ง๋ง, ์๊ฐ์ด๊ณผ๊ฐ ๋๋ค. ๐ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, ์ฐ๋ฆฌ๋ ๋ถํ ์ ๋ณต์ ์ฌ์ฉํ ๊ฒ์ด๋ค. (c) ๊ฐ ์กฐ๊ธ ๊น๋ค๋ก์ ๋ณด์ผ ์ ์๋๋ฐ... ํต์ฌ์, ๊ฑธ์ณค์ ๊ฒฝ์ฐ ํด๋น ํ์๋ฅผ ๋ฐ๋์ ํฌํจํ๋ค๋ ๊ฒ์ด๋ค! ์ฆ, (a) ์์๋ถํฐ ์์ํ๋ค๊ณ ๊ฐ์ ํ์. ํ์์ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ์ค, ์ฐ๋ฆฌ๋ ๋ ๋์ด๊ฐ ํฐ ๊ฒ์ ํํ๋ค. ๊ณ ๋ก (b) ์์ ์ค๋ฅธ์ชฝ์ด ์ ํ๋๋ค. ๋ค์ (b) ์์๋ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ..
ํ๋ก๊ทธ๋๋ฐ ๋ํ์์ ๋ฐฐ์ฐ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ ์ ๋ต(์ดํ ์ข ๋ง๋ถ)์์ ์๊ฐ๋ ๋ฌธ์ ๋ฅผ ํ์ดํฉ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ง์ฌ์ด์๋ผ๋ฉด, ์ง์ ๊ตฌ๋งคํ์ ์ ์ฝ์ด๋ณด์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค! ํต์ฌ : 1. ๋จ์ํ๊ฒ ์๊ฐํด๋ผ [์ข ๋ง๋ถ ๋ฌธ์ ] ์ฟผ๋ ํธ๋ฆฌ ๋ค์ง๊ธฐ (๋ฌธ์ ID : QUADTREE, ๋์ด๋ : ํ) ์.. ์ฟผ๋ ํธ๋ฆฌ๋ ๋๋์ ์ขํ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ ์์ ์์ถํด ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ฌ๋ฌ ๊ธฐ๋ฒ ์ค ํ๋์ด๋ค. ์ฟผ๋ ํธ๋ฆฌ๋ ์ฃผ์ด์ง ๊ณต๊ฐ์ ํญ์ 4๊ฐ๋ก ๋ถํ ํ์ฌ ์ฌ๊ท์ ์ผ๋ก ์ ์ฅํ๋๋ฐ, ์ด๋ฒ์๋ ๊ฒ์์/ํฐ์๋ฐ์ ์๋ ๊ทธ๋ฆผ์ ์์ถํ ์์ ๋ฅผ ํ์ด ๋ณผ ๊ฒ์ด๋ค. ๐ ์ผ๋จ ๋จ์ํ ์ฌ๊ท์ ์ผ๋ก๋ง ํ๋ฉด, ์๋์ ๊ฐ์ด ํ์ด๋ณผ ์๋ ์๋ค(์ฑ ์ ๋์จ ๋ฒ์ ์ ๊ทธ ๋ค์์ ์๊ฐํ ๊ฒ์). #include #include "stdlib.h" #include u..
ํ๋ก๊ทธ๋๋ฐ ๋ํ์์ ๋ฐฐ์ฐ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ ์ ๋ต(์ดํ ์ข ๋ง๋ถ)์์ ์๊ฐ๋ ๋ฌธ์ ๋ฅผ ํ์ดํฉ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ง์ฌ์ด์๋ผ๋ฉด, ์ง์ ๊ตฌ๋งคํ์ ์ ์ฝ์ด๋ณด์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค! ํต์ฌ : 1. ์์ ํ์ ๋ฌธ์ ์ด๊ธด ํ์ง๋ง, ๋ฌธ์ ๋ฅผ ์ด์ง ๋ณํํด์ ์๊ฐํ๋ฉด ์ข๋ค. [์ข ๋ง๋ถ ๋ฌธ์ ] Synchronizing Clocks, ์๊ณ ๋ง์ถ๊ธฐ (๋ฌธ์ ID : CLOCKSYNC, ๋์ด๋ : ์ค) ์ด ๋ฌธ์ ๋ .. ์ฌ์ ํ ์์ ํ์์ผ๋ก ํ ์ ์๋ค. ๋ค๋ง, ์ฌ์ค ์ ๋ณด๋ฉด ์ค์์น๋ฅผ ๋๋ฅด๋ ์์๋ ์๊ด์ด ์๋ค๋ ๊ฒ์ ๋์น์ฑ ์ ์๋ค. ๋ฐ๋ผ์, ์ค์์น 10๊ฐ๋ฅผ ์ต๋ 3๋ฒ์ฉ ๋๋ฌ๊ฐ๋ฉด์ ๋ต์ ์ฐพ์๋๊ฐ๋ฉด ๋๋ค. ์ต๋ ์ํ์ 4^10 ์ด ๋ ๊ฒ์ด๋ค! ๐ #include #include "stdlib.h" #include using namespace std..