[1. 문제 설명]
https://www.acmicpc.net/problem/5585
https://www.acmicpc.net/problem/2217
[2. 풀이 접근]
== 문제 5585 ==
거스름돈이 500엔이고 이때, 거스름돈 동전 개수를 최대한 적게 주는 경우를 생각해보면,
500 엔을 하나 주면 된다.
즉, 거스름돈을 최대 한 큰 금액부터 주면 된다.
== 문제 2217 ==
처음에는 이분 탐색으로 접근해보았다.
w 의 최소는 1이고, 최대는 (9,999*100,000)
로프를 중량 한도 순으로 정렬하고, 여기서 count 개 선택하는 경우를 따져본다.
그런데 중요한 점은 count = 3 일 때, 앞에서 부터 선택하는 것이아니라
뒤에서 부터 선택하는 것이 항상 더 낫다는 것이다.
- 특정 조건으로 정렬하면 탐욕법 구현이 쉬워지는 경우가 있다.
문제에서 원하는 것은 k 개의 로프를 선택했을 때 버틸 수 있는 최대 중량이다.
k 개를 선택하면 결국 이 중 최소 값에 가장 큰 영향을 받는다.
그렇기 때문에 정렬 상 앞쪽에오는 것들은 중량 한도가 낮으므로, 굳이 선택 할 필요가 없다는 것이다.
결국, 이분 탐색 까지 고려할 필요는 없었다.
[3. 코드 - 5585]
[3. 코드 - 2217]
'알고리즘 > Baekjoon' 카테고리의 다른 글
탐욕법. [1946] (0) | 2023.01.19 |
---|---|
탐욕법. [1789, 10162, 10610] (0) | 2023.01.17 |
동적계획법. [11055] (0) | 2023.01.14 |
동적계획법. [11057] (0) | 2023.01.12 |
동적계획법. [2293] (0) | 2023.01.11 |