Greedy(탐욕법)

2024. 11. 27. 15:36·Algorithm
목차
  1. Greedy

Greedy

각 단계에서 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달하는 알고리즘

  • 최적의 값을 구해야 하는 상황에서 사용되는 근시안적인 방법론
  • 이때, 항상 최적의 값을 보장하는 것이 아니라 최적의 값의 ‘근사한 값’을 목표로 함
  • 주로 문제를 분할 가능한 문제들로 분할한 뒤, 각 문제들에 대한 최적 해를 구한 뒤 이를 결합하여 전체 문제의 최적 해를 구하는 경우에 주로 사용

 

속성

  1. 탐욕 선택 속성
    • 각 단계에서 최선의 선택을 했을 때 전체 문제에 대한 최적 해를 구할 수 있는 경우
    • 즉, 각 단계에서 가장 이상적인 선택을 하는 것이 전체적으로 최적의 결과를 가져온다는 것
  2. 최적 부분 구조
    • 전체 문제의 최적 해가 부분 문제의 최적 해로 구성될 수 있는 경우
    • 즉, 전체 문제를 작은 부분 문제로 나누어 각각의 부분 문제에서 최적의 해를 구한 후 이를 조합하여 전체 문제의 최적 해를 구하는 것을 의미

 

단계

  1. 문제의 최적 해 구조를 결정
  2. 문제의 구조에 맞게 선택 절차를 정의
    • 선택 절차(Selection Procedure)
      • 이 단계에서는 ‘현재 상태’에서 ‘최적인 선택’을 함. 이 선택은 이후에는 바뀌지 않음.
  3. 선택 절차에 따라 선택을 수행
  4. 선택된 해가 문제의 조건을 만족하는지 검사
    • 적절성 검사(Feasibility Check)
      •  이 단계에서는 ‘현재 상태’에서 ‘최적인 선택’을 함. 이 선택은 이후에는 바뀌지 않음.
  5. 조건을 만족하지 않으면 해당 해를 제외
  6. 모든 선택이 완료되면 해답을 검사
    • 해답 검사(Solution Check)
      • 이 단계에서는 모든 선택이 완료되면, ‘최종 선택’이 ‘문제의 조건을 만족’하는지 확인. 조건을 만족하면 해답으로 인정
  7. 조건을 만족하지 않으면 해답으로 인정되지 않음.

 

예시

💡 문제 확인

  • 거스름돈으로 1260원을 거슬러줘야 할 때 500원, 100원, 50원, 10원 짜리 동전이 무한정 존재한다면, 가장 큰 동전부터 가능한 많이 사용하는 방식으로 거스름돈을 계산

💡 그리디 알고리즘 적용

  1. 선택 절차 : 거스름돈 문제에서 가장 가치가 큰 동전부터 선택
  2. 적절성 검사: 만약 선택된 동전의 가치가 거스름돈보다 크다면 다음으로 작은 동전을 선택
  3. 해답 검사 : 합이 일치하면 거스름돈 문제가 해결
728x90
반응형

'Algorithm' 카테고리의 다른 글

Exhaustive Search(완전 탐색)  (0) 2024.11.27
Sort(정렬)  (1) 2024.11.27
Heap(힙)  (0) 2024.11.27
Stack/Queue(스택/큐)  (1) 2024.11.26
Hash(해시)  (0) 2024.11.26
  1. Greedy
'Algorithm' 카테고리의 다른 글
  • Exhaustive Search(완전 탐색)
  • Sort(정렬)
  • Heap(힙)
  • Stack/Queue(스택/큐)
nueos
nueos
  • nueos
    nueos 공부 기록
    nueos
  • 전체
    오늘
    어제
    • 분류 전체보기 (191)
      • 해커톤 (1)
      • 네이버 BoostCamp (6)
      • LG 유플러스 유레카 SW (3)
        • React (21)
        • TypeScript (2)
        • JavaScript (2)
        • HTML+CSS (5)
        • Spring (7)
        • Java (6)
        • SQL (2)
        • Algorithm (8)
        • CX (6)
        • Git (2)
        • 프로젝트 (2)
        • 스터디 (9)
        • 과제 (8)
        • 특강 (1)
      • React (3)
      • Next (0)
      • Javascript (2)
      • HTML (2)
      • CSS (9)
      • Algorithm (6)
      • Database (0)
      • OS (13)
      • C++ (24)
      • Python (1)
      • jQuery (1)
      • Django (1)
      • Git (1)
      • 개발 지식 (3)
      • 정보 보안 (22)
      • 포렌식 (1)
      • 암호 (2)
      • 기타 (4)
      • 패스트캠퍼스 FE 프로젝트십 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    디지랩챌린지
    힙
    큐
    디지털혁신
    완전 탐색
    heap
    제주지역혁신플랫폼지능형서비스사업단
    기술로바꾸는세상
    스택
    제주해커톤
    Stack
    exhaustive search
    Queue
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
nueos
Greedy(탐욕법)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.