https://www.acmicpc.net/problem/11047
흠..
너무쉽다
이거 딱봐도 그리디
문제 조건에 Ai 가 Ai-1의 배수라 했으니까
그냥 간단하게 가장 큰 수부터 작은 수 까지 반복적으로 더해주고, 커지면 다음으로 넘어가면 된다
#include <iostream>
using namespace std;
int main()
{
int n, k;
cin >> n >> k;
int arr[n];
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
int money = 0, count = 0;
int temp = n - 1;
while (money != k)
{
if (money + arr[temp] > k)
{
temp--;
continue;
}
money += arr[temp];
count++;
}
cout << count << "\n";
}
Ai 가 Ai-1의 배수라는 것은
Ai의 갯수가 적어지면 그만큼 Ai-1의 갯수들이 늘어나니
총 갯수가 무조건 늘어나는 형태인 것이다
'코딩 테스트 준비! (백준) > GREEDY' 카테고리의 다른 글
[그리디]백준 1201번 NMK(C++) (0) | 2025.05.15 |
---|---|
[그리디]백준 1744번 수 묶기(C++) (0) | 2025.05.15 |
[그리디]백준 1541번 잃어버린 괄호(C++) (0) | 2025.05.15 |
[그리디]백준 1931번 회의실 배정(C++) (0) | 2025.05.13 |
[Greedy] 백준 10972번 다음 순열 (C++) (0) | 2025.04.08 |