여름의 서재
[알고리즘 종류] 탐욕(Greedy) 알고리즘 본문
728x90
- 탐욕 알고리즘
- 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해나가는 방식으로 진행하여 최종적인 해답에 도달한다.
- 각 선택의 시점에서 이루어지는 결정은 지역적으로는 최적이지만, 그 선택들을 계속 수집하여 최종적인 해답을 만들었다고 하여, 그것이 최적이라는 보장은 없다.
↓ 그리디 알고리즘을 활용한 베이비 진 게임
num = 456789 # Baby Gin 확일할 6자리 수
c = [0] * 12 # 6자리 수로부터 각 자리 수를 추출하여 개수를 누적할 리스트
for i in range(6):
c[num % 10] += 1
num //= 10
i = 0
tri = run = 0
while i < 10:
if c[i] >= 3 : # triplet 조사 후 데이터 삭제
c[i] -= 3
tri += 1
continue;
if c[i] >= 1 and c[i+1] >= 1 and c[i+2] >= 1 : # run 조사 후 데이터 삭제
c[i] -= 1
c[i+1] -= 1
c[i+2] -= 1
run += 1
continue
i += 1
if run + tri == 2: print("Baby Gin")
else: print("Lose")
'알고리즘 > 알고리즘 종류' 카테고리의 다른 글
[알고리즘 종류] 보이어-무어 알고리즘 (0) | 2021.08.13 |
---|---|
[알고리즘 종류] KMP 알고리즘 (0) | 2021.08.13 |
[알고리즘 종류] 브루트 포스 (Brute Force) (0) | 2021.08.13 |
[알고리즘 종류] 이진 탐색 (Binary Search) (0) | 2021.08.13 |
[알고리즘 종류] 정렬 알고리즘 (0) | 2021.08.13 |
Comments