알고리즘 풀이/백준
[백준][Java] 1065번 한수
배게
2018. 4. 17. 21:45
728x90
N이 1~100인 경우와 1000인 경우 때문에 2번 틀렸습니다.
3자리수 이상부터 비교할 수 있는 수열이 생기기 때문에
2자리수까지는 전부 한수입니다.
3자리수부터 각 자리수의 차이값을 비교하여 한수인지 아닌지 결정합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int res=0; int N=sc.nextInt(); int numDif,l,h,j; if(N<100) res=N; else if(N<=1000){ res=99; for(int i=100; i<=N; i++) { j=i; numDif=j%10-(j/10)%10; while(true) { j/=10; l=j%10; h=(j/10)%10; if(j/10==0) { res++; break; } else if(numDif !=l-h) break; else numDif=l-h; } } } System.out.println(res); } } |