반응형

 

 

 

<코드>

import java.util.*;
public class Main {
	
	public static boolean funtion(int X) {
		boolean b = true;
		// X가 100미만인 경우엔 무조건 한수
		
		if(X >= 100) { 
			
			int now = X % 10;
			X /= 10;
			int next = X % 10;
			X /= 10;
			int diff = now - next;

			while(X != 0) { // 각 자리수가 등차수열인지 판별
				now = next;
				next = X % 10;
				X /= 10;
				
				if(now - next != diff) { // 등차수열이 아니라면 탈출
					b = false;
					break;
				}
			}
			
		}
		return b;
	}

	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);

		boolean[] check = new boolean[1001];
		int[] ans = new int[1001];
		int cnt = 0;
		int N = sc.nextInt();	
		
		for(int i = 1; i <= 1000; i++) {
			if(funtion(i)) {
				check[i] = true;
				cnt++;
			}
			ans[i] = cnt; // 1~i 사이에서의 한수 개수(cnt)
		}
		
		System.out.println(ans[N]);
		
	}
}

 

 

https://www.acmicpc.net/problem/1065

 

1065번: 한수

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나

www.acmicpc.net

 

반응형

+ Recent posts