티스토리 뷰

PS/BOJ

[구현] 4673번 : 셀프 넘버

GiHoo 2023. 6. 9. 15:13

문제의 조건

 

해결방법

 

문제를 보고 모든 경우의 수를 확인해야 겠다는 생각을 했습니다.

 

d(n) = n + n의 각 자리수의 합을 구하는 함수

여기서 n을 d(n)의 생성자라고 하는데, 이 생성자가 없는 수를 셀프 넘버라 하고, 이를 구하는 문제입니다.

 

1부터 10000까지 루프를 돌면서 d(n)함수가 진행되는 숫자들을 기록하고,

이에 해당하지 않는 수를 루프를 돌며 출력하여 해결하였습니다.

 

 

코드

package baekjoon;

public class J4673 {
    static int[] arr = new int[10001];

    static void d(int n) {
        int sum = 0;
        for(int i=0; i<String.valueOf(n).length(); i++) {
            sum += (String.valueOf(n).charAt(i) - '0');
        }
        int nx = n + sum;
        if(nx <= 10000) {
            arr[nx] = 1;
        }
    }

    public static void main(String[] args) {
        for(int i=1; i<=10000; i++) {
            d(i);
        }
        for(int i=1; i<=10000; i++) {
            if(arr[i]==0) System.out.println(i);
        }
    }
}

 

공지사항
최근에 올라온 글
최근에 달린 댓글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30