KWiOS
KWiOS0101
KWiOS
  • 분류 전체보기 (108)
    • Algorithm (41)
      • 이코테 (14)
      • 이코테 문제풀이 (21)
      • 프로그래머스 (6)
    • CS (1)
      • 모두를 위한 컴퓨터 과학(CS50 2019) (0)
    • iOS (15)
    • Swift (36)
      • Swift문법 (32)
      • 기타 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 6

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
KWiOS

KWiOS0101

그리디 알고리즘
Algorithm/이코테

그리디 알고리즘

2022. 6. 9. 22:36
본 내용은 '이것이 취업을 위한 코딩테스트다 with 파이썬' 책을 기반으로 포스팅 하였습니다.

 

그리디 알고리즘이란?

그리디 알고리즘이란 탐욕법이라고도 하며 현재 상황에서 지금 당장 좋은 것만 고르는 방법이다.

여러 경우 중 하나를 결정해야 할 때마다 그 순간 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다.

단, 그리디 알고리즘을 사용하면 매 선택이 그 순간에 대해서는 최적이지만 종합적으로 봤을땐 최적이라는 보장은 절대 없나는 것을 명심해야한다.

 

그리디 알고리즘을 적용하기 위한 조건

그리디 알고리즘을 적용하기 위한 조건으로는 탐욕스런 선택 조건과 최적 부분 구조 조건이 있으며,

이 두가지 조건이 만족되야 그리디 알고리즘이 잘 동작한다.

탐욕스런 선택 조건 
-. 앞의 선택이 이후의 선택에 영향을 주지 않는다.
최적 부분 구조 조건 
-. 문제에 대한 최적해가 부분 문제에 대해서도 역시 최적해이다.

위 조건들이 성립하지 않는다면 그리디 알고리즘은 최적해를 구하지 못한다.

하지만 이러한 경우에도 그리디 알고리즘은 근사 알고리즘으로 사용 가능하며 대부분의 경우 계산 속도가 빨라 실용적으로 사용 할 수 있다.

탐욕 알고리즘은 항상 최적의 결과를 도출하는 것은 아니지만 어느정도 최적에 근사한 값을 빠르게 도출할 수 있는 장점이 있다.

이 장점으로 인해 탐욕 알고리즘은 근사 알고리즘으로 사용 할 수 있다. 

근사 알고리즘
-. 어떤 최적화 문제에 대한 해의 근사값을 구하는 알고리즘
-. 근사 알고리즘은 가장 최적화되는 답을 구할 수 는 없지만 비교적 빠른 시간에 계산이 가능하고 어느정도 보장된 근사해를 계산할 수 있다. 

 

그리디 알고리즘의 정당성

그리디 알고리즘을 모든 알고리즘 문제에 적용할 수는 없으며,

문제 풀이를 위한 최소한의 아이디어를 떠올리고 이것이 정당한지 검토할 수 있어야 답을 도출할 수 있다.

 

참고자료

https://hanamon.kr/알고리즘-탐욕알고리즘-greedy-algorithm/

 

[알고리즘] 탐욕 알고리즘(Greedy Algorithm) - 하나몬

❗️탐욕 알고리즘(Greedy Algorithm)이란? Greedy는 ‘탐욕스러운, 욕심 많은’ 이란 뜻이다. 탐욕 알고리즘은 말 그대로 선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫓아 최종적인 해답에

hanamon.kr

 https://fliphtml5.com/hkuy/lidy/basic

 

탐욕 알고리즘 - 위키백과, 우리 모두의 백과사전

탐욕 알고리즘은 최적해를 구하는 데에 사용되는 근사적인 방법으로, 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인

ko.wikipedia.org

'Algorithm > 이코테' 카테고리의 다른 글

그래프  (0) 2022.06.18
재귀함수  (0) 2022.06.18
스택/큐  (0) 2022.06.18
탐색/자료구조  (0) 2022.06.18
구현 알고리즘  (0) 2022.06.10
    'Algorithm/이코테' 카테고리의 다른 글
    • 재귀함수
    • 스택/큐
    • 탐색/자료구조
    • 구현 알고리즘
    KWiOS
    KWiOS

    티스토리툴바