파게로그

[백준 2839번] 설탕 배달 본문

콤퓨타 왕왕기초/PS

[백준 2839번] 설탕 배달

파게 2020. 10. 28. 15:48

문제 링크: 2839번 설탕 배달

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

 

큰 것부터 하되 하나씩 줄여나간다는 생각으로.

이게 봉지의 종류가 여러 가지가 된다면 배열에 담아야 할 것 같다.

그 땐 굉장히 복잡해질 건데, 어떻게 해야 할까...? 고민해보고 한 번 풀어보자.

 

#include <iostream>
#include <string>

using namespace std;

int main(void) {
    int i;

    bool arr[10000];    // arr[i] is true
                        // if n exists, false if n doesn't exist (n is gen. of d(n))

    for (i = 0; i < 10000; i++) {
        arr[i] = false;
    }

    for (int n = 1; n < 10000; n++) {
        string nStr = to_string(n);

        int sum = n;
        for (i = 0; i < nStr.size(); i++)
            sum += (nStr[i] - '0');
        if (sum > 10000)
            continue;

        arr[sum] = true;
    }

    for (i = 1; i < 10000; i++) {
        if (!arr[i])
            cout << i << '\n';
    }

    return 0;
}
Comments