μ•Œκ³ λ¦¬μ¦˜ & λ¬Έμ œν’€μ΄/μ•Œκ³ λ¦¬μ¦˜

νƒμš• μ•Œκ³ λ¦¬μ¦˜(Greedy Algorithm)

YunCow 2022. 9. 6. 19:17

Greedy Algorithm μ΄λž€?

  • 말 κ·ΈλŒ€λ‘œ νƒμš•μŠ€λŸ¬μš΄, μš•μ‹¬ λ§Žμ€ μ΄λΌλŠ” λœ»μ΄λ‹€. 맀번 선택을 ν•  λ•Œλ§ˆλ‹€ 항상 μ΅œμ„ μ˜ 방법을 μ„ νƒν•œλ‹€.
  • κ·Έλ¦¬λ””λŠ” λ§€ 선택(지역적)μœΌλ‘œλŠ” μ΅œμ„ μ„ νƒν•˜μ§€λ§Œ κ·Έ 선택듀이 μ΅œμ’…(전역적)으둜 봀을 λ•Œ μ΅œμ„ μ΄λΌλŠ” 보μž₯은 μ—†λ‹€.
  • λ§€μˆœκ°„ μ΅œμ μ„ 따라가면 ex) 1-1-1-100 λ³΄λ‹€λŠ” 1-1-10-10이 μ „μ²΄μ μœΌλ‘œ λ΄€μ„λ•ŒλŠ” 더 짧은 κΈΈ 이기 λ•Œλ¬Έ.

 

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

  • 그리디 μ•Œκ³ λ¦¬μ¦˜μ΄ μ„±λ¦½ν•˜λ €λ©΄ λ‘κ°€μ§€μ˜ 쑰건이 ν•„μš”ν•˜λ‹€.
    1. νƒμš• 선택 속성 (Greedy Choice Property) :  μ΄μ „μ˜ 선택이 λ‹€μŒ 선택에 영ν–₯을 μ£Όμ§€ μ•ŠλŠ”λ‹€.
    2. 졜적 λΆ€λΆ„ ꡬ쑰 (optimal substructure) : λ§€ μ„ νƒμ˜ μˆœκ°„μ˜ μ΅œμ„ μ΄ 전역적에 λŒ€ν•œ μ΅œμ„ μ΄μ–΄μ•Ό ν•œλ‹€.

 

이해λ₯Ό μœ„ν•œ μ˜ˆμ‹œ 및 문제

λ§ˆμ‹œλ©œλ‘œ μ‹€ν—˜ ( 그리디 μ•Œκ³ λ¦¬μ¦˜ X )

  • λ§ˆμ‹œλ©œλ‘œ 1개λ₯Ό μ£Όκ³  15λΆ„ λ™μ•ˆ λ¨Ήμ§€μ•Šκ³  참으면 2개λ₯Ό 주기둜 약속.
  • 그리디 μ•Œκ³ λ¦¬μ¦˜μ˜ κ²½μš°λŠ” 전역적인 μ΅œμ κ°’μ„ κ΅¬ν•˜μ§€ λͺ»ν•˜λ―€λ‘œ 1개λ₯Ό 먹게되며 μ΅œμ κ°’μ„ 얻을 수 μ—†λ‹€.

κ±°μŠ€λ¦„λˆ 문제 ( 그리디 μ•Œκ³ λ¦¬μ¦˜ O )

  • λˆ„κ΅°κ°€ 3200원 μ–΄μΉ˜μ˜ 물건을 사고 5000원을 λƒˆμœΌλ©΄ κ±°μŠ€λ¦„λˆμ€ 1800원이닀.
  • 이 λ•Œ, μ΅œμ†Œμ˜ 개수둜 κ±°μŠ€λ¦„λˆμ„ μ€˜μ•Όν•˜λŠ” 경우 ( κ±°μŠ€λ¦„λˆμ€ 1000원, 500원, 100원, 50원, 10원 μ‚¬μš©κ°€λŠ₯ )
  • μ •λ‹΅: 1000원 1개, 500원 1개, 100원 3κ°œλ‹€.
  • ν˜„μž¬ μ£Όμ–΄μ§„ κ±°μŠ€λ¦„λˆμ—μ„œ μ΅œμ μ„ μ„ νƒν•œ κ²°κ³Όλ‹€. 

 

μ˜ˆμ‹œ 문제

  • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 1레벨 μ˜ˆμ‚° 문제 - 풀이