1. 문제
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
<입력>
- 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.
<출력>
- 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.
2. 예시
3. 풀이
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write(checkHan(Integer.parseInt(br.readLine())) + "\n");
bw.flush();
bw.close();
br.close();
}
public static int checkHan(int n) {
int cnt = 0;
if(n < 100) {
return n;
} else {
cnt = 99;
if(n == 1000) {
n = 999;
}
for(int i = 100; i < n + 1; i++) {
int hun = i / 100;
int ten = (i % 100) / 10;
int one = i % 10;
if((hun - ten) == (ten - one)) {
cnt++;
}
}
}
return cnt;
}
}
더보기
4. 출처
'공부 > CodingTest' 카테고리의 다른 글
[백준/11720] 숫자의 합 (Java 11) (0) | 2021.06.03 |
---|---|
[백준/11654] 아스키 코드 (Java 11) (0) | 2021.06.03 |
[백준/4673] 셀프 넘버 (Java 11) (0) | 2021.06.03 |
[백준/15596] 정수 N개의 합 (Java 11) (0) | 2021.06.03 |
[백준/4344] 평균은 넘겠지 (Java 11) (0) | 2021.06.02 |