그리디 알고리즘 with 백준 11047

2023. 8. 31. 09:42·백준/알고리즘
 

11047번: 동전 0

첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)

www.acmicpc.net

알고리즘 분류 : 그리디 알고리즘

 

선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫓아 최종적인 해답에 도달하는 방법

 

그리디 알고리즘의 조건

 

1. 탐욕적 선택 속성 (Greedy Choice Property) : 앞의 선택이 이후에 영향을 주지 않는다.

2. 최적 부분 구조 (Optimal Substructure) : 문제에 대한 최종 해결 방법은 부분 문제에 대한 최적 문제 해결 방법으로 구성된다.

 

백준 11047번의 입력 조건을 잘 보면 크기 순으로 정렬된 상태로 입력되기 때문에 정렬 알고리즘을 쓰지 않아도 된다.

 

대신 최적 해결 방법을 위해서 값이 큰 것부터 카운트 한다면 굳이 이전 카운트 값보다 작은지 비교할 필요가 없을 것이다.

 

그리고 파이썬에서 찾아본건데 i값이 큰값에서 감소하는 문법을 아래처럼 구현하는 것보다

for i in range(N-1, -1, -1):
	#blablabla

아래가 더 이해하기 쉬운거 같다. 다음부터 아래로 해보자.

for i in reversed(range(N)):
	#blablabla

 

 

아래 페이지에서 그리디 알고리즘에 대해 더 상세하게 잘 나와있어 참고하였다.

 

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

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

hanamon.kr

 

'백준 > 알고리즘' 카테고리의 다른 글

매개 변수 탐색(Parametric Search)  (0) 2023.08.28
'백준/알고리즘' 카테고리의 다른 글
  • 매개 변수 탐색(Parametric Search)
2Suchan
2Suchan
github : @KRSuchan
  • 2Suchan
    dev_logs
    2Suchan
  • 전체
    오늘
    어제
    • 분류 전체보기 (42)
      • 백준 (6)
        • Python (2)
        • 알고리즘 (2)
        • Java (2)
      • 프로그래밍 (10)
        • Java (10)
      • Spring (1)
        • 트러블슈팅 (1)
      • DB (1)
        • Redis (1)
      • DevOps (1)
        • Docker (1)
      • 수학 (12)
        • 이산수학 (12)
      • Univ. (11)
        • 캡스톤디자인 (7)
        • 인공지능 (1)
        • 빅데이터 (1)
        • 정보보안 (1)
        • 디자인패턴 (1)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    14649
    20챕터
    21396
    2판
    chapter13
    Chapter14
    Chapter15
    exercise
    GUI
    java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
2Suchan
그리디 알고리즘 with 백준 11047
상단으로

티스토리툴바