hanker

백준(1065) JAVA - 한수 본문

Study/ALGORITHM

백준(1065) JAVA - 한수

hanker 2020. 12. 23. 13:47
반응형
import java.util.Scanner;

public class Main {
	/*
	 *  한수 
	 *  양의 정수 각 자릿수가 등차수열을 이루면 그 수를 한수라고 한다.
	 *  ex) 1  ~  9  한수
	 *     10  ~ 99  한수
	 *     - 10 : 1 -> 0  공차 : -1
	 *     - 25 : 2 -> 5  공차 : +3
	 */ 
	
	public static void main(String[] args) {
		//1 < N < 1000
		
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		
		int sum = subClass2.cdCnt(N);
		
		System.out.println(sum);
		
	}
}

class subClass2 {
	
	static int cdCnt(int N) {
		int[] ar = new int[N+1];
		int sum = 0;
		for(int i = 1 ; i <= N ; i++) {
			// 각 i의 길이 구하기
			int strLen = Integer.toString(i).length();
			char[] tmp = Integer.toString(i).toCharArray();
			
			if(strLen > 2) {
				int[] cd = new int[strLen-1];
				for(int j = 0 ; j < strLen; j++) {
					if(j < strLen - 1) {
						cd[j] = tmp[j] - tmp[j+1];
						
					}
				}
				
				boolean flag = false;
				
				for(int j = 0 ; j < cd.length ; j++) {
					if(j < cd.length-1) {
						if(cd[j] != cd[j+1]) {
							flag = true;
						}
					}
				}
				
				if(flag == false) {
					ar[i] = 1;
					sum++;
				}
			} else {
				ar[i] = 1;
				sum++;
			}
		}
		
		return sum;
	}
}
반응형