| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- javascript
- vue3
- ํ์ฝํ
- CI/CD
- ์๋ฐ ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑ์ค
- ํ๋ก๊ทธ๋๋จธ์ค
- ์๋ฐ์คํฌ๋ฆฝํธ
- pnpm
- kotlin ์๊ณ ๋ฆฌ์ฆ
- js
- Kotlin
- linux
- GIT
- ๋ฐฑ์ค ์ฝํ๋ฆฐ
- ์ฝํ๋ฆฐ ์๊ณ ๋ฆฌ์ฆ
- ํ์ด์ฌ
- java ์ฝ๋ฉ ํ ์คํธ
- ๋ฏธ๊ตญ์ฃผ์
- python
- ์ฝํ๋ฆฐ
- ์๊ณ ๋ฆฌ์ฆ
- ์๋ฐ
- ์ฝํ๋ฆฐ ์คํ
- Java
- kotlin algorithm
- ๋ฏธ๊ตญ๋ฐฐ๋น์ฃผํฌ์
- Vue.js
- Swift
- ๋ฐฐ๋น์ฃผ
- Today
- Total
๐ ์ ์ด์ ๋จธ๋ฆฟ์์ผ๋ก
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ธ์ ์ฌ์ฉํด์ผํ ๊น? (๋ฐฑ์ค) ๋ณธ๋ฌธ
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ธ์ ์ฌ์ฉํด์ผํ ๊น? (๋ฐฑ์ค)
Space_Jin 2025. 6. 30. 18:07๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ธ์ ์ฌ์ฉํ ๊น?
๋ฐฑ์ค์ ๋ํ์ ์ธ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์
11047 - ๋์ 0
๋ฌธ์
์ค๊ท๊ฐ ๊ฐ์ง๊ณ ์๋ ๋์ ์ ์ด N์ข ๋ฅ์ด๊ณ , ๊ฐ๊ฐ์ ๋์ ์ ๋งค์ฐ ๋ง์ด ๊ฐ์ง๊ณ ์๋ค.
๋์ ์ ์ ์ ํ ์ฌ์ฉํด์ ๊ทธ ๊ฐ์น์ ํฉ์ K๋ก ๋ง๋ค๋ ค๊ณ ํ๋ค. ์ด๋ ํ์ํ ๋์ ๊ฐ์์ ์ต์๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000)
๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๋์ ์ ๊ฐ์น Ai๊ฐ ์ค๋ฆ์ฐจ์์ผ๋ก ์ฃผ์ด์ง๋ค. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2์ธ ๊ฒฝ์ฐ์ Ai๋ Ai-1์ ๋ฐฐ์)
์ถ๋ ฅ
์ฒซ์งธ ์ค์ K์์ ๋ง๋๋๋ฐ ํ์ํ ๋์ ๊ฐ์์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
โ 1. ํด๋น ๋ฌธ์ (11047 - ๋์ 0)๊ฐ ๊ทธ๋ฆฌ๋๋ก ์ต์ ํด๋ฅผ ๋ณด์ฅํ๋ ์ด์
๐ธ ๋ฌธ์ ์์ฝ:
- ์ฃผ์ด์ง ๋์ ์ข ๋ฅ A1, A2, ..., AN (์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋จ)
- ๊ฐ ๋์ ์ ๋ฌดํํ ์กด์ฌ
- ๋ชฉํ ๊ธ์ก K๋ฅผ ๊ฐ์ฅ ์ ์ ๋์ ๊ฐ์๋ก ๋ง๋ค๊ธฐ
๐ธ ํต์ฌ ์กฐ๊ฑด:
- ๋์ ๋จ์๊ฐ ๋ฐฐ์ ๊ด๊ณ์
- ์ฆ, ์ด๋ค ๋์ ๋จ์๋ ํญ์ ๋ ํฐ ๋์ ์ ๋ฐฐ์ (์: 1, 5, 10, 50, 100, 500)
๐ธ ๊ทธ๋ฆฌ๋๊ฐ ์ต์ ํด๋ฅผ ๋ณด์ฅํ๋ ์ด์ :
- ํฐ ๋์ ๋ถํฐ ์ต๋ํ ์ฌ์ฉํ๋ ๊ฒ์ด ํญ์ ์ต์ ์
- ์์ ๋์ ์ฌ๋ฌ ๊ฐ๋ฅผ ์ฐ๋ ๊ฒ๋ณด๋ค, ํฐ ๋์ ํ๋๋ฅผ ์ฐ๋ ๊ฒ ํจ์จ์ ์
- ์ด ์ฑ์ง์ด ์ฑ๋ฆฝํ๋ ์ด์ ๋:
- "๋์ ๋จ์๊ฐ ๋ฐฐ์ ๊ด๊ณ๋ฅผ ๋ง์กฑํ๋ฉด greedy choice property๊ฐ ๋ณด์ฅ๋จ"
โ
์ด๊ฑธ Greedy Choice Property๋ผ๊ณ ํด.
(ํ์ฌ ๋จ๊ณ์์ ๊ฐ์ฅ ์ต์ ์ ์ ํ์ด ์ ์ฒด์ ์ผ๋ก๋ ์ต์ ์ด๋ผ๋ ์ฑ์ง)
โ 2. ์ด ๋ฌธ์ ๊ฐ ์ '๊ทธ๋ฆฌ๋ ๋ฌธ์ '์ธ์ง ํ๋จํ๋ ๊ธฐ์ค
๐ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ๊ทธ๋ฆฌ๋์ธ์ง ์ ์ถํ๋ 3๊ฐ์ง ํํธ:
| ์ต์ ํ(์ต์/์ต๋) | "๊ฐ์ฅ ์ ์ ์์ ๋์ ", "๊ฐ์ฅ ํฐ ์์ต", "์ต์ ์๊ฐ" ๊ฐ์ ํค์๋ |
| ๊ตญ์ ์ต์ ์ด ์ ์ฒด ์ต์ ์ด ๋๋ ๊ตฌ์กฐ | ์ด๋ค ์ ํ์ด ๋ค๋ฅธ ์ ํ์ ์ํฅ์ ๋ ์ฃผ๊ฑฐ๋, ์ํฅ์ด ๋ ๋ฆฝ์ ์ผ ๋ |
| ์์ฐจ์ , ์ ํ์ ๊ตฌ์ฑ | ๋งค ์๊ฐ ํ๋์ฉ ์ ํํด์ ๋์ ํด๊ฐ๋ ๋ฐฉ์ (ex. ์ ํ/๊ฑฐ์ /๋์ฒด) |
์์๋ก ์ ์ฉ:
- "๋์ ๊ฐ์๋ฅผ ์ต์๋ก" → ์ต์ ํ ๋ฌธ์
- "ํฐ ๋์ ๋ถํฐ ์ต๋ํ ์ด๋ค" → ์ง๊ธ ์ต์ ์ด ์ ์ฒด์์๋ ์ต์
- "๋์ ํ๋์ฉ ์ ํํด๊ฐ๋ค" → ์์ฐจ์ ๊ตฌ์กฐ
โ ์ด๋ฐ ์์๋ค์ด ์๋ค๋ฉด ๊ทธ๋ฆฌ๋์ผ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋์
โ 3. ๋ค๋ฅธ ์ ํ์ ๊ทธ๋ฆฌ๋ ๋ฌธ์ ์์๋ ์ด๋ป๊ฒ ์ ์ถํ ๊น?
๐ ์ฃผ์ ๊ทธ๋ฆฌ๋ ์ ํ๊ณผ ํน์ง
| ์ ํ | ์์ | ์์ด๋์ด |
| ๋์ /์์ ์ต์ํ | ๋์ 0, ๊ฑฐ์ค๋ฆ๋ | ํฐ ๋จ์๋ถํฐ ์ต๋ ์ฌ์ฉ |
| ํ๋ ์ ํ ๋ฌธ์ | ํ์์ค ๋ฐฐ์ , ๊ฐ์์ค ๋ฐฐ์ | ๋นจ๋ฆฌ ๋๋๋ ์์๋๋ก ์ ํ |
| ์ ๋ ฌ ํ ์ ํ | ๋ฐฐ๋ญ ๋ฌธ์ (1์ฐจ์) | ๊ฐ์น/๋ฌด๊ฒ ๋น์จ ๊ธฐ์ค |
| ์ฐ์ ์์ ํ | ์ต์ ํ, ์์ ์ค์ผ์ค | ํ์ฌ ๊ฐ์ฅ ์์/ํฐ ๊ฐ ์ฐ์ ์ฒ๋ฆฌ |
| ์ค์ผ์ค๋ง/์ค์ํ | CPU ์ค์ผ์ค๋ง, ๊ณตํญ ๋ฌธ์ | ์ ํ ์๊ฐ ๋์ ์ต์ ์ ํ ์ ์ง |
- ๋ฌธ์ ์์ "ํ ๋ฒ ๊ฒฐ์ ํ๋ฉด ๋๋๋ฆด ์ ์๋ค" → ๊ทธ๋ฆฌ๋ ๊ฐ๋ฅ์ฑ ↑
- ๋งค ์๊ฐ ๊ฐ์ฅ ์ข์ ์ ํ์ ๊ณ ๋ฅด๋ฉด ์ ๋ต์ผ๊น? ๋ผ๋ ์ง๋ฌธ์ ๋์ ธ๋ณด์
- ์ ํ์ ๊ฒฐ๊ณผ๊ฐ ๋ค์ ์ ํ์ ํฐ ์ํฅ์ ์ฃผ์ง ์๋๊ฐ? → ๊ทธ๋ฆฌ๋ ๊ฐ๋ฅ์ฑ ↑
- ๋ค๋ฅด๊ฒ ์ ํํ๋ค๊ณ ํด๋ ์ ์ฒด ๊ฒฐ๊ณผ๋ ๋น์ทํ๊ฐ? → ๊ทธ๋ฆฌ๋ ๊ฐ๋ฅ์ฑ ↑
โ ๊ฒฐ๋ก ์์ฝ
| ํญ๋ชฉ | ์ค๋ช |
| ์ด ๋ฌธ์ ๋ ์ ๊ทธ๋ฆฌ๋์ธ๊ฐ? | ๋์ ๋จ์๊ฐ ๋ฐฐ์ ๊ด๊ณ๋ผ, ํฐ ๋จ์๋ถํฐ ์ฐ๋ ๊ฒ ํญ์ ์ต์ |
| ๊ทธ๋ฆฌ๋๊ฐ ์ต์ ํด ๋ณด์ฅ ์ด์ | Greedy Choice Property + Optimal Substructure ์ฑ๋ฆฝ |
| ๋ค๋ฅธ ๋ฌธ์ ์์ ์ ์ถ ๋ฐฉ๋ฒ | ์ต์ ํ + ์์ฐจ ์ ํ + ์ ํ์ด ๋ค์์ ํฐ ์ํฅ์ ์ ์ค๋ค๋ฉด ๊ทธ๋ฆฌ๋ ๊ฐ๋ฅ์ฑ ↑ |
๊ทธ๋ฆฌ์ด ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ์ง ์์์ผํ ๊ฒฝ์ฐ๋?
โ 1. ๊ทธ๋ฆฌ๋ ์ ํ์ด ์ ์ฒด ์ต์ ํด๋ฅผ ๋ณด์ฅํ์ง ์๋ ๊ฒฝ์ฐ
โ [๋ฐ๋ก๊ฐ ์กด์ฌ]ํ๋ ์ ํ
๐น ์์ 1: ๋ฐฐ๋ญ ๋ฌธ์ (Knapsack Problem) - 0/1 Knapsack
- ๋ฌธ์ ์์ฝ: ๋ฌด๊ฒ ์ ํ์ด ์๋ ๋ฐฐ๋ญ์ ๋ฌผ๊ฑด์ ๋ฃ์ ๋, ์ต๋ ๊ฐ์น๋ฅผ ์ป๋๋ก ๋ฌผ๊ฑด์ ์ ํ
- ๊ทธ๋ฆฌ๋ ์ ๋ต ์ค๋ต ์์: ๊ฐ์น/๋ฌด๊ฒ ๋น์จ์ด ๋์ ๊ฒ๋ถํฐ ๋ฃ๊ธฐ
- ์ค์ ์ ๋ต: DP (๋ถ๋ถ์งํฉ ์กฐํฉ ๊ณ ๋ คํด์ผ ํจ)
- ์ ํ๋ฆผ?
- ์ด๋ค ๋ฌผ๊ฑด์ ํ ๋ฒ ๋ฃ์ผ๋ฉด, ์ดํ ์ ํ์ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ
- ์ ์ฒด ์กฐํฉ ์ค ์ต์ ํด๊ฐ ์์ ์ ์์
โ 2. ๊ตญ์ ์ต์ ์ด ์ ์ฒด ์ต์ ์ด ์๋ ๊ฒฝ์ฐ
๐น ์์ 2: ๋ฌธ์์ด ์์ถ/๋ณํ ๋ฌธ์
- ์ด๋ค ๋ณํ ๊ณผ์ ์์ ํ์ฌ ๋ฌธ์์ด์ ์งง๊ฒ ๋ง๋๋ ๊ฒ์ด,
์ดํ ์ ์ฒด ๋ฌธ์์ด์ ๋ ๊ธธ๊ฒ ๋ง๋ค ์๋ ์์
โ ์ด๋ด ๋ BFS, DFS ๋๋ DP๊ฐ ์ ํฉ
โ 3. ๋ค์ ์ ํ์ ์ํฅ์ ์ฃผ๋ ๊ตฌ์กฐ
๐น ์์ 3: ATM ์ธ์ถ ์๊ฐ (๋ฐฑ์ค 11399)
- ๊ฐ ์ฌ๋์ด ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ๋ค๋ฅผ ๋, ์ค์ ์ด๋ป๊ฒ ์ธ์์ผ ์ ์ฒด ๋๊ธฐ ์๊ฐ์ด ์ต์?
- ์ ๋ต ์ ๋ต: ์ธ์ถ ์๊ฐ์ด ์ ์ ์์๋๋ก ์ ๋ ฌ → ๊ทธ๋ฆฌ๋
- ๊ทธ๋ฐ๋ฐ ๋ง์ฝ "๋๊ตฐ๊ฐ๋ฅผ ๋จผ์ ๋ณด๋ด๋ ๋ฐ ํ๋ํฐ๊ฐ ์๋ค๋ฉด", ๊ทธ๋ฆฌ๋๊ฐ ๊นจ์ง
โ 4. ํ์์ ์ ํ์ด ๋๋๋ฆด ์ ์๋ ๊ตฌ์กฐ
๐น ์์ 4: ์ต์ ์คํจ๋ ํธ๋ฆฌ - ํฌ๋ฃจ์ค์นผ vs ํ๋ฆผ
- ํฌ๋ฃจ์ค์นผ์ ๊ทธ๋ฆฌ๋์ง๋ง, ์ฌ์ดํด์ ํผํด์ผ ํ๋ฏ๋ก ํญ์ ๊ฐ๋ฅํ ๊ฐ์ ์ ์ ํํ ์ ์์ → ์ ๋์จ ํ์ธ๋ ํ์
โ ๊ทธ๋ฆฌ๋ ์ค๋ต ํจํด ์์ฝ
| ์ค๋ต ์ ํ | ์ค๋ช | ์ ์ ํ ์๊ณ ๋ฆฌ์ฆ |
| ์ ์ฒด ์กฐํฉ ๊ณ ๋ ค ํ์ | ์กฐํฉ์ด ๋ฌ๋ผ์ง๋ฉด ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง๋ ๋ฌธ์ | DP, ์์ ํ์ |
| ์ ํ์ด ๋ฏธ๋์ ์ํฅ ์ค | ํ ๋ฒ์ ์ ํ์ด ์ดํ ์ํฉ ์ ํ | DFS, BFS |
| ๊ฐ์ค์น/์กฐ๊ฑด ๋ณํ | ์ ํ ๊ธฐ์ค์ด ์ํฉ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง | ์ฐ์ ์์ํ, DP |
| ๋๋๋ฆด ์ ์์ | ๊ตญ์ ์ต์ ์ด ์ ์ฒด ์ต์ ์๋ | ๋ฐฑํธ๋ํน |
โ ์ ๋ฆฌ: ๊ทธ๋ฆฌ๋ ์ฌ์ฉ ์ ์ฒดํฌ๋ฆฌ์คํธ
- ์ ํ์ด ๋ค์ ์ ํ์ ์ํฅ์ ์ฃผ๋๊ฐ? → ์ํฅ ํฌ๋ฉด โ
- ์ง๊ธ์ ์ต์ ์ด ์ ์ฒด์์ ํญ์ ์ต์ ์ธ๊ฐ? → ์๋๋ฉด โ
- ๋ฌธ์ ์์ "์ต์ ํด"๋ฅผ ๊ตฌํ๋ผ๊ณ ํ ๋, ์กฐํฉ์ ๊ณ ๋ คํด์ผ ํ ๊ฐ๋ฅ์ฑ์? → ๊ทธ๋ฌ๋ฉด DP๋ ํ์ ํ์
- ๋ฌธ์ ์์ ์ ๋ ฅ ์กฐ๊ฑด์ด ๋ค์ํ๊ฒ ๊ผฌ์ฌ ์๋๊ฐ? → ๊ทธ๋ฆฌ๋ ๋จ๋ ์ผ๋ก ์ํ
'Programming > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํ์ฝํ ] Day2. ์ด์ฉ๋ค ๋ณต์ต (ํ๋ก๊ทธ๋๋จธ์ค "์์" ํ์ด) (0) | 2025.09.09 |
|---|---|
| [ํ์ฝํ ] Day1. ์์์ด ๋ฐ (ํ๋ก๊ทธ๋๋จธ์ค "์ ํ๋ฒํธ ๋ชฉ๋ก" ํ์ด) (0) | 2025.09.08 |
| [Java] ๋ชจ๋๋ฌ ์ ๊ณฑ๊ทผ (0) | 2025.05.01 |
| [Java] ์๋ฐ์ ์ด์ง ์ฐ์ฐ(๋นํธ ์ฐ์ฐ) (0) | 2025.04.06 |
| [Java] Softeer Level 2- "GPT์ ์ซ์ ๋น๊ต" ์๋ฐ ํ์ด (0) | 2025.04.06 |