ALGORITHM

[JAVA] 백준 1065번- 한수

연듀 2022. 8. 7. 10:43

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

 

1065번: 한수

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

www.acmicpc.net

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(br.readLine());
        int cnt = 0;

        for (int i = 1; i <= n; i++) {
            if (i < 100) cnt++;
            else cnt += isHanNumber(i);
        }
        System.out.println(cnt);
    }

    public static int isHanNumber(int num) {

        int a = num / 100;
        int b = (num % 100) / 10;
        int c = (num % 100) % 10;

        if(a-b == b-c) return 1;
        return 0;
    }
}

 

 

 

단계별 분류에서 함수 부분이었기 때문에 한수인지를 판별하는 함수를 만들어 풀었다.

100미만의 수들은 모두 한수이기 때문에 무조건 카운트를 증가시키고, 100이상 1000이하인 수들은 한수인지 판별하는 함수로 검사를해 맞으면 카운트를 증가시킨다.