수열이 가능한 조건을 찾아서 규칙을 만들어 푸는 문제인데
쉽다고 생각하고 규칙을 생각안하고 어렵게,비효율적으로 풀었다.
알고리즘이 푼 코드가 아닌 정답만 나오는 개판인 코드를 만들어냈다.
시간,메모리 면에서 엄청 손해를 봤다.
이 코드를 보면서 반성하고 앞으로 항상 코드타이핑 하기 전에 생각을 더 하자!
public class baekjoon4673 {
static int n[];
static boolean visit[];
public static void main(String[]args ){
n=new int[10001];
visit=new boolean[10001];
for(int i=0;i<10001;i++){
n[i]=i;
}
int a=0;
visit[2]=true;
for(int i=2;i<10001;i++){
if(visit[i]==true){
continue;
}
a=i;
while(a<10000 && visit[i]==false){
a=d(a);
}
a=0;
}
visit[4]=true;
for(int i=1;i< visit.length;i++){
if(visit[i]==false){
System.out.println(i);
}
}
}
public static int d(int n){
String s=String.valueOf(n);
String[]a = s.split("");
for(int i=0;i<a.length;i++){
n+=Integer.parseInt(a[i]);
}
if(n<10001){
visit[n]=true;
}
return n;
}
}