πŸ“• Algorithm/Solved

[μ•Œκ³ λ¦¬μ¦˜] Greedy Algorithmμ΄λž€? (졜적, 예제, μ •μ˜, κ°œλ…)

ν•œμ½”λ”© 2020. 4. 18. 23:36
728x90
728x90
 

그리디 μ•Œκ³ λ¦¬μ¦˜

- κ²°μ •ν•΄μ•Ό ν•  λ•Œ, κ·Έ μˆœκ°„μ— κ°€μž₯ μ’‹λ‹€κ³  μƒκ°ν•˜λŠ” 것을 μ„ νƒν•˜λ©΄μ„œ 닡을 μ°Ύμ•„κ°€λŠ” μ•Œκ³ λ¦¬μ¦˜

- κ·Έ λ•ŒλŠ” μ΅œμ μΌμ§€ λͺ°λΌλ„, μ΅œμ’…μ μœΌλ‘œ 닡이 졜적이 아닐 μˆ˜λ„ μžˆλ‹€.

​

??? : μ΅œμ μ΄λΌλ©΄μ„œ μ™œ 닡이 μ•„λ‹ˆμ£ ?

​

μ˜€ν•΄ν•˜κΈ° μ‰¬μš΄ μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€. '그리디 μ•Œκ³ λ¦¬μ¦˜μ€ 쉽닀!' λΌλŠ” 인식이 κ°•ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ 그렇지 μ•ŠμŠ΅λ‹ˆλ‹€.

사싀상 ​저 선택이 μ™œ μ΅œμ μΈμ§€λ₯Ό 증λͺ…ν•΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— μ–΄λ ΅μŠ΅λ‹ˆλ‹€.

항상 졜적이 아닐 μˆ˜λ„ μžˆμœΌλ‹ˆκΉŒμš”...


μ–΄λ ΅λ‚˜μš”? ν•œ 번 예λ₯Όλ“€μ–΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

​

1) μ—¬λŸ¬λΆ„μ€ 까까λ₯Ό 사먹기 μœ„ν•΄ νŽΈμ˜μ μ— μ™”μŠ΅λ‹ˆλ‹€.

μ§€κΈˆ λ”± λ§Œμ›μ΄ μžˆλŠ”λ°, 2430μ›μ΄λΌλŠ” 가격에 까까 ν•˜λ‚˜λ₯Ό μƒ€μŠ΅λ‹ˆλ‹€.

그리고 λ§Œμ› 지폐 ν•œ μž₯을 λ‚΄λ°€μ—ˆμŠ΅λ‹ˆλ‹€. 거슬러 λ°›μ•„μ•Ό ν•  λˆμ€? 7570원 μž…λ‹ˆλ‹€.

이 λ•Œ, κ±°μŠ€λ¦„λˆμ˜ 지폐, λ™μ „μ˜ κ°―μˆ˜κ°€ μ΅œμ†Œκ°€ λ˜μ•Όν•œλ‹€λ©΄ μ–΄λ–»κ²Œ 돌렀 λ°›μ•„μ•Ό ν• κΉŒμš”?

​

7570원 μ΄λ―€λ‘œ 7570 - 5000 = 2570 ! ( 총 1개 )

2570원 μ΄λ―€λ‘œ 2570 - 2 * 1000 = 570 ! ( 총 3개 )

570원 μ΄λ―€λ‘œ 570 - 500 = 70 ! ( 총 4개 )

70원 μ΄λ―€λ‘œ 70 - 50 = 20 ! ( 총 5개 )

20원 μ΄λ―€λ‘œ 20 - 2 * 10 = 0 ! ( 총 7개 )

​

감이 μ˜€μ‹œλ‚˜μš”? μ €λ ‡κ²Œ λŒλ €μ€˜μ•Ό μš• μ•ˆ λ¨ΉμŠ΅λ‹ˆλ‹€.

μ €λ ‡κ²Œ 항상 졜적의 경우λ₯Ό μ„ νƒν•˜λŠ” 방법이 λ°”λ‘œ '그리디 μ•Œκ³ λ¦¬μ¦˜' μž…λ‹ˆλ‹€.

λ„ˆλ¬΄ μ‰½λ‚˜μš”? 그럼 ν•˜λ‚˜ 예λ₯Ό 더 λ“€μ–΄λ΄…μ‹œλ‹€.


2) 이 μ„Έμƒμ˜ 동전은 저희가 μ•Œκ³ μžˆλŠ” 것과 λ‹€λ₯΄κ²Œ

1원, 4원, 5원 밖에 μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

​

그러면 μœ„μ— κ²½μš°μ™€ 같은 λ°©λ²•μœΌλ‘œ κ±°μŠ€λ¦„λˆ 12원을 λ°›μ•„ λ΄…μ‹œλ‹€.

​

12원 μ΄λ―€λ‘œ 12 - 2 * 5 = 2 ! ( 총 2개 )

2원 μ΄λ―€λ‘œ 2 - 2 * 1 = 0 ! ( 총 4개 )

​

와! κΉ”λ”ν•˜κ²Œ 닡이 λ‚˜μ™”λ„€μš”! (μ—­μ‹œ 그리디 μ•Œκ³ λ¦¬μ¦˜! λΈ”λ‘œκ·Έλ₯Ό 뒀집어 λ†“μœΌμ…¨λ‹€!)

이라고 μƒκ°ν•˜λ©΄ μ•ˆλ©λ‹ˆλ‹€. 이건 닡이 μ•„λ‹ˆκΈ° λ•Œλ¬Έμ΄μ£ ...

​

12원을 12 - 4 * 3 = 0 ν•˜λ©΄ 총 3κ°œλΌλŠ” 더 쒋은 κ²°κ³Όκ°€ λ‚˜μ™€λ²„λ¦¬κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

이처럼, 1) μ˜ˆμ œλŠ” μ΅œμ μ΄μ—ˆμ§€λ§Œ, 2) μ˜ˆμ œλŠ” μ•„λ‹ˆμ—ˆμŠ΅λ‹ˆλ‹€.

μ΄λ ‡κ²Œ νŠΉλ³„ν•œ 쑰건에 λ§žλŠ” μ²΄κ³„μ—μ„œλ§Œ μ„±λ¦½ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄ λ°”λ‘œ 그리디 μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€.

​

이해가 λ˜μ…¨λ‚˜μš”? λ‹€μŒ ν¬μŠ€νŒ…μ€ 그리디 μ•Œκ³ λ¦¬μ¦˜μ„ ν™œμš©ν•˜μ—¬ 문제λ₯Ό ν’€μ–΄λ³΄λŠ” μ‹œκ°„μ„ κ°€μ Έλ³΄κ² μŠ΅λ‹ˆλ‹€.

μ—΄μ‹¬νžˆ μ‚΄κ² μŠ΅λ‹ˆλ‹€.

728x90
λ°˜μ‘ν˜•