상세 컨텐츠

본문 제목

JAVA. 백준 알고리즘 단계별 문제 - 6단계(문제 번호 1065)

공-부/백준 알고리즘

by 사랑짱 2021. 5. 29. 21:56

본문

(문제 번호 1065)

N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.

 

문제 해결 포인트

각 자리가 등차수열을 이루는 수가 한수이다.

여기서 등차수열이란 연속된 두개의 수의 차이가 일정한 수열을 의미한다.

 


문제 해결 과정

1. N보다 작은 한수의 개수를 출력하는 함수를 만든다.

   N < 100 인 경우, 1 ~ 99까지는 수 자체가 등차수열이므로 한수의 개수는 N개이다.

   N > 100 인 경우, 100 ~ N 중 한수의 개수를 구하여야 한다.

   (참고로, 99까지는 수 자체가 등차수열이므로 +99 해야 한다.)

2. 한수는 각 자리가 등차수열이므로 각 자리 수의 차이가 동일하다면 한수의 개수를 증가시킨다.

   - 일의 자리 : N % 10

   - 십의 자리 : (N/10)%10 

   - 백의 자리 : N/100

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.util.Scanner;


public class No03 {


    public static int arithmeticSequence(int n) {        
        int count = 0;
        
        if(n < 100) {
            return n;
        } else {
            count = 99;

            for(int i = 100; i <= n; i++) {
                int one = i%10;
                int ten = (i/10)%10;
                int hun = i/100;
                
                if(one-ten == ten - hun) {
                    count++;
                }
            }
            return count;
        }
   } //arithmeticSequence 메소드
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("n : ");
        int n = sc.nextInt();
        
        System.out.println(arithmeticSequence(n));
   } //main

} //class
cs

 

 

관련글 더보기