반응형
문제
풀이
정수의 각 자리 수가 등차수열로 이루어지면 한수
예) 1 ~ 99, 111 (0), 123 (1), 135 (2), 147 (3), 159 (4), 210 (1)....
1 ~ 99 까지는 한수를 더해주고 세 자리 숫자부터 함수를 만들어서 처리를 함
첫째 자릿수와 둘째 자릿수를 계산을 해서 증감 값을 찾아내고
그다음 셋째 자리 수와 둘째 자리 수를 비교해서 한수 값을 찾아내는 것으로 해결을 하였다
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
//한자리, 두자리 수는 모두 한수
if (N < 100) {
System.out.println(N);
return;
}
int count = 99;
for (int i = 100; i <= N; i++) {
if (generator(i)) {
count++;
}
}
System.out.println(count);
}
public static boolean generator(int n) {
//둘째자리와 첫째자리를 비교해서 증감값
int cal = n / 10 % 10 - n % 10;
int compare = n / 10 % 10;
//세번재 자리부터 비교
n /= 100;
while (n != 0) {
if (n != compare + cal) {
return false;
}
compare = n;
n /= 10;
}
return true;
}
}
출처
반응형
'알고리즘 > 백준' 카테고리의 다른 글
백준 1011번 Fly me to the Alpha Centauri 자바 java (0) | 2021.04.14 |
---|---|
백준 2869번 달팽이는 올라가고 싶다 자바 java (0) | 2021.04.13 |
백준 4673번 셀프 넘버 자바 java (0) | 2021.04.11 |
백준 15552번 빠른 A+B 자바 java (0) | 2021.04.11 |
백준 2884번 알람시계 자바 java (0) | 2021.04.11 |
댓글