카테고리 없음
[백준/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);
}
}
}
}