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); } } |
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[백준][Java] 2577번 숫자의 개수 (0) | 2018.04.19 |
---|---|
[백준][Java] 1152번 단어의 개수 (0) | 2018.04.18 |
[백준][Java] 4673번 셀프 넘버 (0) | 2018.04.17 |
[백준][Java] 2839번 설탕 배달 (0) | 2018.04.17 |
[백준][Java] 1110번 더하기 사이클 (0) | 2018.04.17 |