그리디 Greedy

횽·2024λ…„ 5μ›” 24일
0

algorithm&data-structure

λͺ©λ‘ 보기
3/17

πŸ“κ·Έλ¦¬λ”” μ•Œκ³ λ¦¬μ¦˜

: greedyλž€ 'νƒμš•μŠ€λŸ¬μš΄'μ΄λΌλŠ” 뜻으둜,
ν˜„μž¬ μƒν™©μ—μ„œ κ°€μž₯ 쒋은 κ²ƒλ§Œ κ³ λ₯΄λŠ” 방법을 μ˜λ―Έν•œλ‹€.

λ§€μˆœκ°„ κ°€μž₯ μ’‹μ•„λ³΄μ΄λŠ” 것을 μ„ νƒν•˜λ©΄ ν˜„μž¬μ˜ 선택이 λ‚˜μ€‘μ— λ―ΈμΉ  영ν–₯을 κ³ λ €ν•˜μ§€ μ•ŠλŠ”λ‹€.

μž₯점 : 동적 κ³„νšλ²•λ³΄λ‹€ κ΅¬ν˜„ν•˜κΈ° 쉽고 μ‹œκ°„ λ³΅μž‘λ„κ°€ μ’‹λ‹€.
단점 : 항상 졜적의 ν•΄λ₯Ό 보μž₯ν•˜μ§€ λͺ»ν•œλ‹€.

			μ‹œμž‘
	3				  5
100	 101		  10     11

μœ„μ™€ κ°™λ‹€λ©΄ κ·Έλ¦¬λ””λŠ” 5 -> 11을 선택해 16이 λ‚˜μ˜¨λ‹€.
ν•˜μ§€λ§Œ μœ„μ—μ„œ κ°€μž₯ 큰 값은 3 -> 101을 μ„ νƒν•΄μ„œ 104이닀.
즉, 항상 졜적의 ν•΄λ₯Ό 보μž₯ν•˜μ§€λŠ” λͺ»ν•œλ‹€.


2. 그리디 μ•Œκ³ λ¦¬μ¦˜ μˆ˜ν–‰ κ³Όμ •

  1. ν•΄ 선택 : ν˜„μž¬ μƒνƒœμ—μ„œμ˜ 졜적의 해닡을 μ„ νƒν•œλ‹€.
  2. μ μ ˆμ„± 검사 : μ„ νƒλœ ν•΄κ°€ 문제의 μ œμ•½ 쑰건을 λ§Œμ‘±ν•˜λŠ”μ§€ κ²€μ‚¬ν•œλ‹€.
  3. ν•΄λ‹΅ 검사 : μ›λž˜μ˜ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆλŠ”μ§€ κ²€μ‚¬ν•˜κ³ , ν•΄κ²°λ˜μ§€ μ•Šμ•˜λ‹€λ©΄ 1번으둜 λŒμ•„κ°€ μœ„μ˜ 과정을 λ°˜λ³΅ν•œλ‹€.

λ¬Έμ œμ— "κ°€μž₯ μž‘μ€ μˆœλŒ€λ‘œ", "κ°€μž₯ 큰 μˆœμ„œλŒ€λ‘œ" λΌλŠ” 말이 있으면 그리디 μ•Œκ³ λ¦¬μ¦˜μΌ κ°€λŠ₯성이 λ†’λ‹€.

λŒ€λΆ€λΆ„ 문제 쑰건에 λ§žμΆ”μ–΄ 정렬을 ν•œ ν›„ μ•Œκ³ λ¦¬μ¦˜ 과정을 μˆ˜ν–‰ν•œλ‹€.


3. μ•Œκ³ λ¦¬μ¦˜ 적용 쑰건

  1. 선택 쑰건 : μ•žμ˜ 선택이 μ΄ν›„μ˜ 선택에 영ν–₯을 주지 μ•ŠλŠ” 것이닀.
  2. 졜적 λΆ€λΆ„ ꡬ쑰 쑰건 : λ¬Έμ œμ— λŒ€ν•œ 졜적의 ν•΄κ°€ λΆ€λΆ„λ¬Έμ œμ— λŒ€ν•΄μ„œλ„ μ—­μ‹œ 졜적의 해이어야 ν•œλ‹€.

μ΄λŸ¬ν•œ 쑰건이 μ„±λ¦½ν•˜μ§€ μ•ŠλŠ” κ²½μš°μ—λŠ” 그리디 μ•Œκ³ λ¦¬μ¦˜μ€ 졜적의 ν•΄λ₯Ό κ΅¬ν•˜μ§€ λͺ»ν•œλ‹€.




0개의 λŒ“κΈ€