코딩굼벵이
구르는 중
코딩굼벵이
  • 분류 전체보기 (115)
    • [C_C++]이론 공부 (17)
      • 알고리즘 (11)
      • 이론+STL (6)
    • [C_C++]코딩테스트 연습 (45)
      • [프로그래머스] level 1 (26)
      • [프로그래머스] level 2 (5)
      • [백준] 일반 문제 (12)
      • 기타 (2)
    • Solana (28)
      • Documentation (9)
      • Validator - 공부 (10)
      • Validator - 실행 (devnet & te.. (6)
      • 그 외 (3)
    • React (4)
    • Linux (2)
    • Javascript (2)
    • 블록체인 기반 핀테크 및 응용 SW 개발 (8)
      • React (1)
      • Javascript (3)
      • Solidity (3)
      • 프로젝트 (1)
    • 기타 (9)

블로그 메뉴

  • 🌟 깃허브
  • 🌿 Portfolio(2021)
  • 홈
  • 태그
  • 방명록

티스토리

최근 글

태그

  • Immer #ContextAPI
  • 모니터링
  • Hooks #React
  • 밸리데이터
  • 솔라나
  • grafana

인기 글

전체 방문자
오늘
어제
hELLO · Designed By 정상우.
코딩굼벵이

구르는 중

[알고리즘 공부] 그리디(Greedy) 알고리즘
[C_C++]이론 공부/알고리즘

[알고리즘 공부] 그리디(Greedy) 알고리즘

2022. 8. 19. 17:33
728x90

그리디 알고리즘(Greedy Algorithm)

- 당장 눈앞에 보이는 최적의 상황만을 쫓는 알고리즘
- 가장 단순한 형태이며, 난이도가 매우 낮은 알고리즘 중 하나.
- 항상 최적의 결과를 도출하는 것은 아니지만 어느 정도 최적의 해에 근사한 값을 빠르게 구할 수 있음.
- 특정한 상황에 있어서는 그리디 알고리즘이 최적의 해를 보장할 수도 있음!
   가장 대표적인 예제 : 거스름돈 문제 - 무조건 더 큰 화폐 단위부터 거슬러 주는 게 최적의 해

#include <iostream>

using namespace std;

int main() {
    int n, result = 0;
    scanf("%d", &n);
    result += n/500;
    n %= 500;
    result += n/100;
    n %= 100;
    result += n/50;
    n %= 50;
    result += n/10;
    n %= 10;

    printf("%d", result);

    return 0;
}

출력

 

그리디 알고리즘은 무조건 큰/작은 경우대로, 무조건 긴/짧은 경우대로 등 극단적으로 문제에 접근한다는 점에서 정렬 기법이 함께 사용되는 경우가 많음.
대표적 예시: 크루스칼 알고리즘(모든 간선을 정렬한 후 짧은 간선부터 연결하는 최소 비용 신장 트리 알고리즘)

=> 굉장히 많은 알고리즘이 그리디 알고리즘에 속하며, 활용도가 높아 실생활 문제 해결에도 도움.

 

그러나, 그리디는 최적의 해를 보장하지 못하는 경우가 더 많음.

다이나믹 프로그래밍(DP) 등의 기타 알고리즘 기법을 적용해야 하기도 함.

 

저작자표시 비영리 변경금지 (새창열림)

'[C_C++]이론 공부 > 알고리즘' 카테고리의 다른 글

[알고리즘 공부] 플로이드 와샬(Floyd Warshall) 알고리즘  (0) 2022.08.19
[알고리즘 공부] 다익스트라(Dijkstra) 알고리즘  (0) 2022.08.19
[알고리즘 공부] 에라토스테네스의 체  (0) 2022.08.18
[알고리즘 공부] 다이나믹 프로그래밍(DP, 동적 계획법)  (0) 2022.08.10
[알고리즘 공부] 이진트리의 구현과 순회 알고리즘  (0) 2022.08.10
    '[C_C++]이론 공부/알고리즘' 카테고리의 다른 글
    • [알고리즘 공부] 플로이드 와샬(Floyd Warshall) 알고리즘
    • [알고리즘 공부] 다익스트라(Dijkstra) 알고리즘
    • [알고리즘 공부] 에라토스테네스의 체
    • [알고리즘 공부] 다이나믹 프로그래밍(DP, 동적 계획법)
    코딩굼벵이
    코딩굼벵이
    구르는 재주 연마 중

    티스토리툴바