본문 바로가기
Algorithm/Baekjoon

[백준] 4673번 : 셀프 넘버 - Java

by unknownomad 2022. 3. 14.

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

 

4673번: 셀프 넘버

셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,

www.acmicpc.net



주의점

  • 한 줄에 하나씩 출력 - a lot more numbers 부분은 출력 X
  • 양의 정수(0보다 크고 10000보다 작은 수) 중, 셀프 넘버 출력

풀이

public class Main {
    public static void main(String[] args) {

        boolean[] arr = new boolean[10001]; //index 범위 : 1 ~ 10000
        for (int i = 1; i < 10001; i++) {
            int n = d(i);
            if(n < 10001) {
                arr[n] = true;
            }
        }
 
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i < 10001; i++) {
            if (!arr[i]) { //false인 index만 출력
                sb.append(i).append("\n");
            }
        }
        System.out.println(sb);
    }
 
    public static int d(int number) {
        int sum = number;
        while(number != 0){
            sum += number % 10;
            number = number / 10;
        }
        return sum;
    }
}

 


출처 : ​https://st-lab.tistory.com/53

댓글