[알고리즘]탐욕/그리디 알고리즘
탐욕/그리디 알고리즘
- 동적계획법과는 달리 미래를 생각하지 않고 각 단계에서 가장 최선의 선택을 하는 기법이다. (각 단계에서 최선의 선택을 한 것이 전체적으로도 최선이길 바란다.)
- 모든 경우에서 사용할 수 있는 알고리즘은 아니다.
- 최적의 해를 구할 때 사용한다.(그렇다고... 최적의 해를 보장해주지는 않는다...)
- 그리디 알고리즘은 정렬과 같이 쓰인다.
탐욕/그리디 알고리즘 원리
(출처 : https://en.wikipedia.org/wiki/File:Greedy-search-path-example.gif)
python 실행코드
ex) 한 개의 회의실이 있는데 이를 사용하고자 하는 n개의 회의들을 회의가 겹치지 않게 하면서 최대로 회의실을 사용할 수 있는 경우의 수를 찾아라
# input: 5 1 5 2 3 3 5 4 7 5 8
import sys sys.stdin=open("input.txt", "r") n = int(input()) a = [] for i in range(n): b = list(map(int, input().split())) a.append(b) a.sort(key=lambda x: (x[1], x[0])) end = 0 cnt = 0 for i in range(n): if end <= a[i][0]: end = a[i][1] cnt += 1 print('최대수 : {}'.format(cnt)) # 최대수 : 3
Author And Source
이 문제에 관하여([알고리즘]탐욕/그리디 알고리즘), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@aammaa/알고리즘탐욕그리디-알고리즘저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)