Coding - Algo/Java
[백준] 1065번:한수 (Java 자바)
jainn
2021. 8. 12. 18:02
728x90
문제
https://www.acmicpc.net/problem/1065
1065번: 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나
www.acmicpc.net
풀이 및 소스코드
import java.io.*;
import java.util.*;
class Main {
static int n;
static int cnt;
static int[] save;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
n = scan.nextInt();
if(n<100) {
System.out.println(n);
System.exit(0);
}else if(n==1000) {
System.out.println("144");
System.exit(0);
}
cnt = 99;
save = new int[n+1];
sub_num(100);
System.out.println(save[n]);
}
public static void sub_num(int now_num) {
if(now_num>n) {
return;
}
if(save[now_num]!=0) sub_num(now_num+1);
else {
String tmp = Integer.toString(now_num);
int a = tmp.charAt(0)-'0';
int b = tmp.charAt(1)-'0';
int c = tmp.charAt(2)-'0';
if(a-b == b-c) {
cnt++;
}
save[now_num] = cnt;
sub_num(now_num+1);
}
}
}
반응형