백준|4673번|셀프 넘버

JSK·2022년 7월 31일
0

자바 PS풀이

목록 보기
2/51

문제설명
어느 한 자연수 N과 N의 각 자릿수의 합을 생성자라고 합니다. 이러한 생성자를 가지지 않는 수를 셀프넘버라고 합니다. 이 문제는 1~10000사이에 있는 셀프 넘버를 출력하는 문제입니다.

작동 순서
1. boolean 배열을 10001개 생성하고 true로 초기화시켜줍니다.
2. isSelfNumber는 입력된 숫자와 그 숫자의 각 자릿수를 더하여서 boolean에서 해당하는 순서의 값을 false로 바꾸는 함수입니다.
3. 1부터 10000까지 함수를 실행합니다.
4. self_number 배열에서 true 값을 가지는 숫자들만 출력을 합니다.

소스코드

package 백준연습;
import java.util.Arrays;

public class 백준_4673번_셀프넘버 {
    static boolean[] self_number=new boolean[10001];
    static void isSelfNumber(int j){
        int sum=j;
        String digit=String.valueOf(j);
        for(int k=0;k<digit.length();k++)
            sum+=digit.charAt(k)-'0';
        if(sum<10001)
            self_number[sum]=false;
    }
    public static void main(String[] args){
        Arrays.fill(self_number, true);
        for(int i=0;i<=10000;i++)
            isSelfNumber(i);
        for (int l=0;l<=10000;l++)
            if(self_number[l])
                System.out.println(l);
    }
}

후기
자바 문법이 아직 익숙하지 않아서 어려움을 겪었는데 확실히 파이썬이 굉장히 배우기 쉬운 언어인걸 느끼는 것 같습니다.

profile
학사지만 AI하고 싶어요...

0개의 댓글