1421 - 나무꾼 이다솜

2025. 2. 26. 15:27PS/백준

문제

https://www.acmicpc.net/problem/1421

느낀점

구현 기본 문제, 문제를 정확하게 읽어야 엣지 케이스를 잘 대비할 수 있다.. 구현 문제 더 풀자

풀이

#include <algorithm>
#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int N, C, W;
    cin >> N >> C >> W;
    vector<int> arr(N);
    int maxtree = 0;
    long long maxValue = 0;
    for (int i = 0; i < N; i++)
    {
        cin >> arr[i];
        maxtree = max(maxtree, arr[i]);
    }
    for (int i = 0; i < maxtree; i++)
    {
        int cnt = 0;
        int div = i + 1;
        long long money = 0;
        for (int j = 0; j < N; j++)
        {
            long long tempMoney = 0;
            if (div > arr[j])
            {
                continue;
            }

            cnt = arr[j] / div;
            tempMoney += cnt * div * W;
            if (arr[j] % div == 0)
            {
                tempMoney -= (cnt - 1) * C;
            }
            else
            {
                tempMoney -= cnt * C;
            }
            if (tempMoney < 0)
            {
                continue;
            }
            else
            {
                money += tempMoney;
            }
        }
        cnt = 0;
        maxValue = max(maxValue, money);
    }
    cout << maxValue;

    return 0;
}

 

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

1986 - 체스  (0) 2025.02.26
1713 - 후보 추천하기  (0) 2025.02.26
1283 - 단축키 지정  (0) 2025.02.26
28066 - 타노스는 요세푸스가 밉다  (0) 2025.02.25
6137 - 문자열 생성  (0) 2025.02.25