ํต์ฌ) ๊ณตํต์ ์ํ์ก์ ๊ตฌํ๋ค, ์ ํด์ง ์ด์ก ์ดํ์์ ๊ฐ๋ฅํ ํ ์ต๋์ ์ด ์์ฐ ๊ตฌํ๊ธฐ. ๋ค์ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐฐ์ 1) ๋ชจ๋ ์์ฒญ์ด ๋ฐฐ์ ๋ ์ ์๋ ๊ฒฝ์ฐ์๋ ์์ฒญํ ๊ธ์ก์ ๊ทธ๋๋ก ๋ฐฐ์ ํ๋ค. 2) ๋ชจ๋ ์์ฒญ์ด ๋ฐฐ์ ๋ ์ ์๋ ๊ฒฝ์ฐ์๋ ํน์ ํ ์ ์ ์ํ์ก์ ๊ณ์ฐํ์ฌ, ๊ทธ ์ด
๋ฌธ์ ์ดํด ๐ฌ > ์ํ๋ Z๊ฐ ๋๊ธฐ ์ํ X์ ์ ์ ์ต์๊ฐ์ ๊ตฌํ์์ค ๊ฒ์ ํ์ : X ์ด๊ธด ๊ฒ์ : Y (Z% : ์น๋ฅ . ์์ซ์ ์ ๋ฒ๋ฆผ) ์์ผ๋ก ๋ชจ๋ ๊ฒ์์์ ์ด๊น (x๊ฐ ๋์ด๋๋ฉด ๋ฐ๋์ Y ๋ ๋์ด๋จ) X์ Y๊ฐ ์ฃผ์ด์ก์ ๋, X๋ฅผ ์ต์ ๋ช ๋ฒ ๋ ํด์ผ Z๊ฐ ๋ณ
๋ธ๋ฃจ๋ ์ด ๊ธธ์ด์ ์ ์ ์ต์ ๊ฐ์ ๊ตฌํ์์ค๋ธ๋ฃจ๋ ์ด์๋ ์ด N๊ฐ์ ๊ฐ์๊ฐ '์์๋๋ก' ๋ค์ด๊ฐ๊ฐ์๋ ์งค๋ ค์ ๋ชป๋ค์ด๊ฐ๋ค (๋ค์ด๊ฐ๋ ค๋ฉด ํต์ฑ๋ก ํ์ฌ๋์ด์ผ)๋ชจ๋ ๋ธ๋ฃจ๋ ์ด๋ ๊ฐ์ ํฌ๊ธฐ ๊ฐ์ง๊ฐ์์ : N / ๋ธ๋ฃจ๋ ์ด์ ๊ฐฏ์ : M์ ๋ ฅ์ฒซ์งธ ์ค์ ๊ฐ์์ ์ N (1 โค N โค 100,00
'์์ฒฉ2'์ ์ ํ์๋ M๊ฐ์ ์ซ์ ์์๋๋ก, '์์ฒฉ1'์ ์์ผ๋ฉด 1, ์์ผ๋ฉด 0 ์ถ๋ ฅ์ ๋ ฅ์ฒซ์งธ ์ค์ ํ ์คํธ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ๋ค์ด์จ๋ค. ๋ค์ ์ค์๋ โ์์ฒฉ 1โ์ ์ ์ด ๋์ ์ ์์ ๊ฐ์ N(1 โค N โค 1,000,000)์ด ์ ๋ ฅ์ผ๋ก ๋ค์ด์จ๋ค.๊ทธ ๋ค์ ์ค์ โ์์ฒฉ 1โ
์ ์ ํ๋, ์ต์์ธ ์ธ์ถ ๊ธ์ก K ์ฐพ๊ธฐN : ๊ธ์ก์ ๊ณ์ฐํ ์ผ ์M : ํต์ฅ์์ ๋์ ๋บ ์ ์๋ ํ์K : ํต์ฅ์์ ๋บ ๋์ผ๋ก ํ๋ฃจ๋ฅผ ๋ณด๋ผ ์ ์์ผ๋ฉด ๊ทธ๋๋ก ์ฌ์ฉํ๊ณ , ๋ชจ์๋ผ๊ฒ ๋๋ฉด ๋จ์ ๊ธ์ก์ ํต์ฅ์ ์ง์ด๋ฃ๊ณ ๋ค์ K์์ ์ธ์ถํ๋ค๋ค๋ง ์ ํํ M๋ฒ์ ๋ง์ถ๊ธฐ ์ํด์ ๋จ์
1922๋ฒ ๋คํธ์ํฌ์ฐ๊ฒฐ๋ชจ๋ ์ปดํจํฐ๋ฅผ ์ฐ๊ฒฐํ๋๋ฐ ํ์ํ ์ต์๋น์ฉ์ด ์์ ํฌ๋ฃจ์ค์นผ ๊ทธ ์์ฒด๋ค!!์ ๋ฆฌํด๋๋ ๊ทธ๋ํ-ํฌ๋ฃจ์ค์นผ์๊ณ ๋ฆฌ์ฆ ์ ์๋ ๊ตฌํ์ฝ๋๋๋ก ๋ง๋ค๋ฉด ๋๊ฒ ๊ตฌ๋ง
๊ทธ๋ํ์ ์ต์ ์คํจ๋ ํธ๋ฆฌ๋ฅผ ๊ตฌํ๋ผ์ต์ ์คํจ๋ ํธ๋ฆฌ๋, ์ฃผ์ด์ง ๊ทธ๋ํ์ ๋ชจ๋ ์ ์ ๋ค์ ์ฐ๊ฒฐํ๋ ๋ถ๋ถ ๊ทธ๋ํ ์ค์์ ๊ทธ ๊ฐ์ค์น์ ํฉ์ด ์ต์์ธ ํธ๋ฆฌ๋ฅผ ๋งํ๋ค.๊ฐ์ใ ... ์์ด์ซ๋ค์ ์ฅ = spanning์ต์์ ์ฅํธ๋ฆฌ ์์ธํ ์ ๋ฆฌ๋ ํฐ์คํ ๋ฆฌMST์ ๊ตฌํ๋ฐฉ๋ฒ์ผ๋ก ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ
์๊ทผ์ด๊ฐ ๋ชจ๋ ๊ตญ๊ฐ๋ฅผ ์ฌํํ๊ธฐ ์ํด ํ์ผ ํ๋ ๋นํ๊ธฐ ์ข ๋ฅ์ ์ต์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.๋นํ๊ธฐ ์ข ๋ฅ = ๊ฐ์ ์ผ๋ก ์๊ฐ๊ฐ์ weight = 1๋ก ์๊ฐ๊ตญ๊ฐ๋ค์ ๋คํธ์ํฌ์ฒ๋ผ ์๊ฒผ๊ณ , ๋๋ผ๋ค์ด vertex, ๋นํ๊ธฐ๋ค์ด edge , ๊ฐ edge weight๋ 1๋ก ์ณค์๋ MST๋ฅผ ๊ตฌ
๋ฐฑ์ค 1080๋ฒ ํ๋ ฌํ๋ ฌ A๋ฅผ ํ๋ ฌ B๋ก ๋ฐ๊พธ๋๋ฐ ํ์ํ ์ฐ์ฐ์ ํ์์ ์ต์๊ฐ(์ฐ์ฐ = 3ร3ํฌ๊ธฐ์ ๋ถ๋ถ ํ๋ ฌ์ ์๋ ๋ชจ๋ ์์๋ฅผ ๋ค์ง๋ ๊ฒ์ด๋ค. (0 โ 1, 1 โ 0))3X3 ๋ถ๋ถํ๋ ฌ์ ๋ชจ๋ ์์๋ฅผ ๋ค์ง๊ธฐ?๋ถ๋ถ ํ๋ ฌ์ด๋? 0์ 1๋ก ๋ฐ๊พผ๊ฑธ ๋ค์ 0์ผ๋ก ๋ฐ๊พธ๊ณ ์ด๋ฐ
\[๋ฐฑ์ค ATM์์ N๋ช ์ ์ฌ๋๋ค์ด ์ค์ ์์๋ค. ์ฌ๋์ 1๋ฒ๋ถํฐ N๋ฒ๊น์ง ๋ฒํธ๊ฐ ๋งค๊ฒจ์ ธ ์์ผ๋ฉฐ, i๋ฒ ์ฌ๋์ด ๋์ ์ธ์ถํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ Pi๋ถ์ด๋ค. ๊ฐ ์ฌ๋์ด ๋์ ์ธ์ถํ๋๋ฐ ํ์ํ ์๊ฐ์ ํฉ์ ์ต์๊ฐ์ ๊ตฌํ์์ค.์ค์ ์๋ ์์์ ๋ฐ๋ผ ์ ์ฒด ์๊ฐ ํฉ์ด ๋ฌ๋ผ์ง๋ค.
K์์ ๋ง๋๋๋ฐ ํ์ํ ๋์ ๊ฐ์์ ์ต์๊ฐ ๊ตฌํ๊ธฐ ์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ์ฃผ์ด์ง๋ค. (1 โค N โค 10, 1 โค K โค 100,000,000)๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๋์ ์ ๊ฐ์น Ai๊ฐ ์ค๋ฆ์ฐจ์์ผ๋ก ์ฃผ์ด์ง๋ค. (1 โค Ai โค 1,000,000, A1 = 1, i โฅ
์บ ํ์ฅ์ ์ฐ์ํ๋ P์ผ ์ค, L์ผ๋์๋ง ์ฌ์ฉํ ์ ์๋ค. ๊ฐ์ฐ์ด๋ ์ด์ ๋ง V์ผ์ง๋ฆฌ ํด๊ฐ๋ฅผ ์์ํ๋ค. ๊ฐ์ฐ์ด๊ฐ ์บ ํ์ฅ์ ์ต๋ ๋ฉฐ์น ๋์ ์ฌ์ฉํ ์ ์์๊น? (1 < L < P < V)์ด๋ ๊ฒ ์ค๊ฐ์ค๊ฐ ์ต๋ L์ผ์ ์ฌ์ฉํ๊ณ ๋์ ํ๋ฃจ์ฉ ์ฌ๋ฉด ๋ ๊ฒ ๊ฐ๋ค. ์ต
๋ค์ง๋ ํ๋์ ์ต์ ํ์๋ฅผ ์ถ๋ ฅ๋ค์ง๋ ํ๋ = ์ฐ์๋ ํ๋ ์ด์์ ์ซ์๋ฅผ ์ก๊ณ ๋ชจ๋ ๋ค์ง์์์๋ฅผ ๋ค์ด S=0001100 ์ผ ๋,์ ์ฒด๋ฅผ ๋ค์ง์ผ๋ฉด 1110011์ด ๋๋ค.4๋ฒ์งธ ๋ฌธ์๋ถํฐ 5๋ฒ์งธ ๋ฌธ์๊น์ง ๋ค์ง์ผ๋ฉด 1111111์ด ๋์ด์ 2๋ฒ ๋ง์ ๋ชจ๋ ๊ฐ์ ์ซ์๋ก ๋ง๋ค ์ ์
๋ฐฑ์ค๋งํฌ๋ฏผ์์ด๋ ์ํํ์์์ ๋จ์ด ์ํ ๋ฌธ์ ๋ฅผ ํธ๋ ์์ ๋ฅผ ๋ฐ์๋ค.๋จ์ด ์ํ ๋ฌธ์ ๋ N๊ฐ์ ๋จ์ด๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ๊ฐ ๋จ์ด๋ ์ํ๋ฒณ ๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ค. ์ด๋, ๊ฐ ์ํ๋ฒณ ๋๋ฌธ์๋ฅผ 0๋ถํฐ 9๊น์ง์ ์ซ์ ์ค ํ๋๋ก ๋ฐ๊ฟ์ N๊ฐ์ ์๋ฅผ ํฉํ๋ ๋ฌธ์ ์ด๋ค. ๊ฐ์ ์ํ๋ฒณ
๐ถ ๋ฌธ์ ๋ฐฑ์ค๋งํฌ
๋ ์์ ๊ณฑ์์ ๊ฐ์ฅ ํฐ ๊ฐ์ด ๋์ค๋ ค๋ฉด ๊ฐ์ฅ ํฐ ์๋ค์ ๊ณฑํ๋๊ฒ ์ ์ผ ํฐ ๊ณฑ์ด ๋์จ๋ค. ex) 1~16์ผ๋ 16\*15 ๊ฐ ๊ฐ์ฅ ํฐ ๊ณฑ๊ทธ๋ฌ๋ฏ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ ๋ค์ ํฐ ์๋ณด๋ค ๋ค๋ง ์์ธ๋ก, ์์๋ 1์์) ์์๋ผ๋ฆฌ ๋ฌถ์2์์) ๋ค๋ฅธ ์์๊ฐ ์๋ค๋ฉด 0๊ณผ ๋ฌถ์3์์ ) ์
ํ์ด์ฌ ๋ด์ฅ sort ํจ์์ ์๊ฐ๋ณต์ก๋๋ก ๊ณ์ฐํด๋ณด๊ณ , ์๊ฐ์ ํ์ ๋๊ธฐ์ง ์์ผ๋ฉด ๊ทธ๋ฅ ๋ฐ๋ก ์ฐ์! ์ฐพ์๋ณด๋ ํ์ด์ฌ์ sortํจ์์ ๋ณต์ก๋๋ O(NlogN) ์ด๋ค. N(1 โค N โค 5,000,000) ์ด๋๊น, 5,000,000 \* log(5,000,000) = 33,4
์๊ฐ๋ณต์ก๋ ์ฒดํฌํ์ด์ฌ ๋ด์ฅ sort ์ ์๊ฐ๋ณต์ก๋๋ O(NlogN)N <= 1,000,000,000 ์ด๋ฏ๋กNlogN = 9,000,000,000 = ์๊ฐ์ ํ ์ด๋ด๋ด์ฅํจ์๋ก ํธํ๊ฒ ํต๊ณผ!
์๊ฐ๋ณต์ก๋ ์๋๊ธฐ๋ฉด ๊ทธ๋ฅ ๋ด์ฅํจ์๋ก ํธํ๊ฒ ใ ใ intersect ์ฐ์ฐs & t์ผ๋ O(len(s)+len(t))N, M์ 500,000 ์ดํ์ ์์ฐ์์ด๋ฏ๋ก O(N)+O(M) = 1์ต์ดํ sort ์ฐ์ฐ๋ด์ฅํจ์ sort์ ์๊ฐ๋ณต์ก๋๋ O(NlogN)N, M์ 500,000
๊ฐ์ฅ ๋ง์ด ์ฐจ์ด ๋๋ ์๋ผ๋ฆฌ ๊ณฑํด์ผ, ๊ทธ ๊ณฑ์ ํฌ๊ธฐ๊ฐ ์๋ค(์ด๊ฑฐ ์ค๋ฉ๋ ์ฆ๋ช ์์๋๋ฐ ๊ธฐ์ต์ด ์๋จ)๊ทธ๋์ ํ๊ฒ๋ ์ค๋ฆ์ฐจ์, ํ๊ฐ๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ ํ ๊ณฑํ๋ฉด ๋๊ฒ ๋ค!์ ๋ต!
๋ฌธ์ ํ์ด
๐ฏ ๋ฌธ์ ๐ฌ ์ฒ์ ๋ ์๊ฐ ๊ทธ๋ฅ ์๋ ๊ทธ๋๋ก ๊ตฌํํ๋ฉด ๋ ๊ฒ๊ฐ์๋... ๐ฆ ์ฒ์ ์ง ์ฝ๋ ์ด ์คํจ โน๏ธโน๏ธโน๏ธ ์ ํ๋ฆฐ๊ฑธ๊น ๊ณ ๋ฏผ์ค ์์ ์ธํ ์์ํ์ ์ ๋๋ก ๋์ค๋๋.. ![](https://images.velog.io/images/yesterdaykit
\[๋จ์ํ๊ฒ ์๊ฐํ์๋๊ฐ์ฅ ๋์ ๊ฐ์น๋ฅผ ๊ฐ์ง ๋ณด์์ ๋ฐฐ๋ญ์ ์ง์ด๋ฃ๋, ๋ฌด๊ฒ๊ฐ ๋ค์ด๊ฐ๋ ์์๋๋ก ํฐ ๋ฐฐ๋ญ์ ์ง์ด๋ฃ์ผ๋ฉด ๋ ๋ฏ.knapsack์ธ๊ฐ?๊ทผ๋ฐ ์ด๊ฑฐ ๊ทธ๊ฑฐ ์๋๊ฐ ๊ทธ ์ปด์2์์ ๋ฐฐ์ด ๋ฐฐ๋ญ์ ๋ญ ์ง์ด๋ฃ๊ธฐ..์ฌ์ค ๊ธฐ์ต๋๋๊ฒ ๋น๋๊ธฐ๋ ๋ฐฐ๋ญ๋ฐ์ ์์๐๊ฒ์ํ๋๊น knapsa
N<=15๋ก ์๊ฐ๋ณด๋ค ์์์์ด๋ค.greedyํ๊ฒ ํ ์ ์๋ ๊ณ์ฐ์ ํด๋ณด์๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ณ์ฐํธ ํ๊ฐ๋ฅผ ๋์๋๋ง๋ค, N\*N ์นธ์ ๊ฒ์ฆ -> ๊ฐ๋ฅํ ์นธ์ด m๊ฐ ๋์จ๋ค๊ณ ๊ฐ์ .๋ค์ ํธ ํ๊ฐ๋ฅผ ๋์ผ๋ ค๋ฉด m๊ฐ ์ผ์ด์ค(N\*N์ ํตํด ๋์ถ)\*N\*N์นธ์ ๊ฒ์ฆ = O(
์ด๊ฑฐ BFS,,, DFS,,,, (๋ค ๊น๋จน์)์ธ๋ก์ ๊ฐ๋ก ๊ธธ์ด๊ฐ ์๋ค (3 โค N, M โค 8). greedyํ๊ฒ ํ ์๋์๊ฒ ๋ค์๊ฐ๋ณต์ก๋ ๊ณ์ฐ ํ, ์๋ ๊ฒ๊ฐ์ผ๋ฉด DFS, BFS ๋ณต์ตํ ์ด๋ ๊ฒ ํธ๋ ๋ฐฉ๋ฒ ํด๋ณด์์๊ฐ๋ณต์ก๋ ๊ณ์ฐ๊ฐ์ฅ๊ฐ์ฅ ์๊ฐ์์ด ํ์์๋๋ฅผ ๊ฐ์ ํ์ (3 โค
๋ฐฑ์ค\_1753\_์ต๋จ๊ฒฝ๋ก์...์์ ์ด๊ฑฐ ์ปด๋ท ๊ธฐ๋ง๊ณ ์ฌ์ ๋์๋ ์๊ณ ๋ฆฌ์ฆ์ธ๋ฐ์์์์ ๋ค์ต์คํธ๋ผ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆํน์ ์ ์ ์์ ๋ค๋ฅธ ๋ชจ๋ ์ ์ ์ผ๋ก ๊ฐ๋ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ์๋ ค์ค๋ค.๊ฐ์ค์น๊ฐ ์์ธ ๊ฒฝ์ฐ๋ ๋ถ๊ฐ๋ฅ (ํ๋ก์ด๋ ์์ ์ ์จ์ผ)์ฐ์ ์์ ํ ์ฌ์ฉ์ ๋ณต์ก๋๋ O(N\*log
๋ฐฑ์ค1932๋ฒ์ ์์ผ๊ฐํํน์ ์์น๋ก ๋๋ฌํ๊ธฐ ์ํด์ '์ผ์ชฝ์' ํน์ '๋ฐ๋ก ์' 2๊ฐ์ง ์์น์์๋ง ๋ด๋ ค์ฌ ์ ์๋ค. ๋ฐ๋ผ์, ๋ชจ๋ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด์ ์์น๋ก ๊ฐ๋ฅํ 2๊ฐ์ง ์์น๊น์ง์ ์ต์ ์ ํฉ ์ค ๋ ํฐ ํฉ์ ๊ฐ์ง๋ ๊ฒฝ์ฐ ์ ํ$$dpi=arrayi+max(dpi-1,
$$dpi = max(pi + dp\[ti+i]], max_value)$$dpi=i๋ฒ์งธ ๋ ๋ถํฐ ๋ง์ง๋ง๋ ๊น์ง ๋ผ ์ ์๋ ์ต๋์ ์ด์ตmax_value = ๋ค์์๋ถํฐ ๊ณ์ฐํ ๋, ํ์ฌ๊น์ง์ ์ต๋ ์๋ด ๊ธ์ก์ ํด๋นํ๋ ๋ณ์๋ค์ชฝ๋ถํฐ ๊ฑฐ๊พธ๋ก ๋งค ์๋ด์ ๋ํ์ฌ (ํ์ฌ ์๋ด ์ผ์์
๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด ๋ฌธ์ Di = arrayi๋ฅผ ๋ง์ง๋ง ์์๋ก ๊ฐ์ง๋ ๋ถ๋ถ ์์ด์ ์ต๋ ๊ธธ์ด๋ชจ๋ $$0<=j<i$$ ์ ๋ํ์ฌ $$Di=max(Di,Dj+1)$$ if $$arrayj<arrayi$$10 20 10 30 20 50 ์ ์ฆ๊ฐํ๋ ๋ถ
\[์ต์ ์ฐ๊ฒฐ๋ฌธ์ ๊ตฌ๋ง (์ต์์ ์ฅํธ๋ฆฌ)์ต์์ ์ฅํธ๋ฆฌ ๋ง๋ค๊ธฐ = ํฌ๋ฃจ์ค์นผํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ ์๊ฐ๋ณต์ก๋ : ๊ฐ์ ๊ฐฏ์ E์ผ๋ $$O(ElogE)$$์์ด๋์ด : ๊ฐ ์ ์ ๊ฐ ๊ฐ์ ์ ๊ฐ์ค์น๋ฅผ ์์ ์์๋๋ก ์ ํํด ๋๊ฐ๋๋ฐ, union-find ์ฐ์ฐ์ผ๋ก ์ธ์ดํด์ด ๋ฐ์ํ๋์ง ์ฌ๋ถ๋ฅผ ํ๋จ
\[์ด ์ด๊ฑฐ ๋ชจ๋ ๋ ธ๋๊ฐ ์ฐ๊ฒฐ๋์ด์์ผ๋ฉด, ์ ํํ ๋ฑ์๋ฅผ์ ์ ์์๋ ์ ํํ ์์ ๋ฌธ์ ์๊ฐ์ด ๋๋๋...์ด๋ค ์ ์ด ๋ค๋ฅด์ง ๊ทธ๋ฅ ์๋ง ์ฃผ๋๊ฒ ์๋๋ผ ์๋ ์ ์์ ๊ฒฐ๊ณผ๋ฅผ ์๋ ค์ฃผ๊ณ , ๊ฑฐ๊ธฐ์์ ์์๊ฐ ๋ค๋ฐ๋ ์์ ์ค๋ค.'์ผ๊ด์ฑ์ด ์๋ ์๋ชป๋ ์ ๋ณด'๋ฅผ "IMPOSSIBLE"๋ก