๋์ ํ๋ก๊ทธ๋๋ฐ(3)
-
[BOJ] #11053 - ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด
11053๋ฒ: ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด ์์ด A๊ฐ ์ฃผ์ด์ก์ ๋, ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์๋ฅผ ๋ค์ด, ์์ด A = {10, 20, 10, 30, 20, 50} ์ธ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด์ A = {10, 20, 10, 30, 20, 50} ์ด www.acmicpc.net ** ๋ฌธ์ ์ ํ ๋์ ํ๋ก๊ทธ๋๋ฐ, LIS ** ํ์ด ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด(LIS) ๋ฌธ์ ๋ ์ ํ์ ์ธ ๋์ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ ์์ด์ ํฌ๊ธฐ๊ฐ N์ผ ๋, ๊ธฐ๋ณธ์ ์ธ ๋์ ํ๋ก๊ทธ๋๋ฐ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก O(N^2)์ ํด๊ฒฐ ๊ฐ๋ฅ D[i] = array[i]๋ฅผ ๋ง์ง๋ง ์์๋ก ๊ฐ์ง๋ ๋ถ๋ถ ์์ด์ ์ต๋ ๊ธธ์ด N = 6์ผ ๋, n = int(input()) array = list(map(int, input(..
2021.06.22 -
[BOJ] #12865 - ํ๋ฒํ ๋ฐฐ๋ญ
12865๋ฒ: ํ๋ฒํ ๋ฐฐ๋ญ ์ฒซ ์ค์ ๋ฌผํ์ ์ N(1 ≤ N ≤ 100)๊ณผ ์ค์๊ฐ ๋ฒํธ ์ ์๋ ๋ฌด๊ฒ K(1 ≤ K ≤ 100,000)๊ฐ ์ฃผ์ด์ง๋ค. ๋ ๋ฒ์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฑฐ์ณ ๊ฐ ๋ฌผ๊ฑด์ ๋ฌด๊ฒ W(1 ≤ W ≤ 100,000)์ ํด๋น ๋ฌผ๊ฑด์ ๊ฐ์น V(0 ≤ V ≤ 1,000) www.acmicpc.net ** ๋ฌธ์ ์ ํ ๋์ ํ๋ก๊ทธ๋๋ฐ ** ํ์ด ๋ฐฐ๋ญ ๋ฌธ์ (Knapsack Problem)์ผ๋ก ์๋ ค์ ธ ์๋, ์ ํ์ ์ธ ๋์ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ ๋ฌผํ์ ์ = N, ๋ฐฐ๋ญ์ ๋ด์ ์ ์๋ ๋ฌด๊ฒ = K ๋์ ํ๋ก๊ทธ๋๋ฐ์ ์ด์ฉํ์ฌ ์๊ฐ ๋ณต์ก๋ O(NK)๋ก ๋ฌธ์ ํด๊ฒฐ ๊ฐ๋ฅ +) ํต์ฌ ์์ด๋์ด ๋ชจ๋ ๋ฌด๊ฒ์ ๋ํ์ฌ ์ต๋ ๊ฐ์น๋ฅผ ์ ์ฅํ๊ธฐ D[i][j] = ๋ฐฐ๋ญ์ ๋ฃ์ ๋ฌผํ์ ๋ฌด๊ฒ ํฉ์ด j์ผ ๋ ์ป์ ์ ์๋ ์ต๋ ๊ฐ์น ๊ฐ..
2021.06.22 -
[BOJ] #1904 - 01ํ์ผ
1904๋ฒ: 01ํ์ผ ์ง์์ด์๊ฒ 2์ง ์์ด์ ๊ฐ๋ฅด์ณ ์ฃผ๊ธฐ ์ํด, ์ง์์ด ์๋ฒ์ง๋ ๊ทธ์๊ฒ ํ์ผ๋ค์ ์ ๋ฌผํด์ฃผ์ จ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๊ฐ๊ฐ์ ํ์ผ๋ค์ 0 ๋๋ 1์ด ์ฐ์ฌ ์๋ ๋ฑ์ฅ์ ํ์ผ๋ค์ด๋ค. ์ด๋ ๋ ์ง๊ถ์ ๋์ฃผ๊ฐ ์ง์์ด www.acmicpc.net ** ๋ฌธ์ ์ ํ ๋์ ํ๋ก๊ทธ๋๋ฐ ** ํ์ด ์ฌ์ฉํ ์ ์๋ ํ์ผ์ ์ข ๋ฅ๋ 2๊ฐ: (1), (00) ๋ ๊ฐ์ง ์ข ๋ฅ์ ํ์ผ์ ์ด์ฉํ์ฌ, N ๊ธธ์ด์ ์์ด์ ๋ง๋๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ณ์ฐ ๊ฐ์ฅ ์ ํ์ ์ธ ๋์ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ N์ด ์ต๋ 1,000,000 ์ด๋ฏ๋ก ์๊ฐ ๋ณต์ก๋ O(N)์ผ๋ก ํด๊ฒฐํด์ผ ํจ +) ๊ณผ์ N = 2์ผ ๋, ๊ฒฝ์ฐ์ ์๋ 2๊ฐ์ง -> (11), (00) N = 3์ผ ๋, ๊ฒฝ์ฐ์ ์๋ 3๊ฐ์ง N = 4์ผ ๋, ๊ฒฝ์ฐ์ ์๋ 5๊ฐ์ง ๋์ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด..
2021.06.22