[boj] (s5) 4673 셀프 넘버

강신현·2022년 3월 30일
0

문제

링크

풀이

문제 이해하기 쉽지 않았다. 문제 내에 생성자, 셀프 넘버 같은 새로운 용어 및 개념들이 나와서 그런거 같다.
하지만 생각보다 문제는 간단했다.

양의 정수이면서 10000보다 작거나 같은 수의 생성자를 모두 구해 저장해놓고 생성자가 없는, 즉 셀프 넘버인 수를 출력하는 문제였다. 👉 완전탐색

코드

#include <iostream>
#include <algorithm>
#include <string>

using namespace std;

int fun(int num) // 생성자 만듦
{
    int sum = num;
    while (num != 0)
    {
        sum += (num % 10);
        num = num / 10;
    }
    return sum;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    bool arr[10001] = {false};

    for (int i = 1; i <= 10000; i++)
    {
        if (fun(i) <= 10000)
            arr[fun(i)] = true;
    }

    for (int i = 1; i <= 10000; i++)
    {
        if (arr[i] == false) // 생성자 없는 경우 (셀프 넘버)
            cout << i << "\n";
    }

    return 0;
}
profile
땅콩의 모험 (server)

0개의 댓글