코딩테스트 연습 기록

이종길·2021년 12월 23일
0

코딩테스트 연습

목록 보기
9/128

2021.12.23 3일차

백준 1065번 (한수)

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다.

문제

N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.

나의 풀이

  1. 범위 나눠서 접근
  2. 1 ~ 99까지는 한수
  3. 1000은 한수에 해당x, 100 ~ 999에 해당하는 한수 구하기
  4. 백의 자리 n / 100, 십의 자리 n % 100 / 10, 일의 자리 n % 10
  5. 두번째 자릿수 - 첫번째 자릿수 == 세번째 자릿수 - 두번째 자릿수
  6. 조건에 해당하면 개수 추가
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Test test = new Test();
        int a = scanner.nextInt();

        test.sum(a);
    }
}

class Test {
    void sum(int a) {
        int count = 0;

        if (a < 100) {
            count = a;
        } else {
            count += 99;
            for (int i = 100; i <= a; i++) {
                if (i % 100 / 10 - i % 10 == i / 100 - i % 100 / 10) {
                    count++;
                }
            }
        }

        System.out.println(count);
    }
}

생각하기

profile
Go High

0개의 댓글

관련 채용 정보