카테고리 없음

[백준/JAVA] 4673번 : 셀프 넘버

코딩 펭귄 2021. 9. 7. 13:50

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

 

 

해당 문제에서는 각 자리수를 하나씩 불러와 계산에 이용하여야 합니다.

int로 값을 받아온 후 나누어 각 자리 숫자를 저장하는 것도 가능하지만, 번거롭기 때문에 String으로 값을 받아온 후 char로 값을 하나씩 뽑고 int로 변환하는 방법을 사용하였습니다.

 

public class Main {
	public static void main(String[] args) {
		String[] strNum = new String[10000];
		int[] num = new int[10000];
		
		for(int i = 0; i < strNum.length; i++) {
			strNum[i] = Integer.toString(i+1);
			num[i] += i+1;
			for(int j = 0; j < strNum[i].length(); j++) {
				num[i] += Character.getNumericValue(strNum[i].charAt(j));
			}
		}
		
		for(int i = 1; i <= 10000; i++) {
			boolean flag = true;
			for(int j = 0; j < num.length; j++) {
				if(num[j] == i) {
					flag = false;
					break;
				}
			}
			if(flag) {
				System.out.println(i);
			}
		}
	}
}