백준[Java] - 한수

이새봄·2022년 8월 24일

코딩 연습

목록 보기
6/14

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner sc = new Scanner(System.in);
		int num1 = sc.nextInt();

		System.out.print(fx(num1));
	}

	public static int fx(int num) {
		int count = 0;

		if (num < 100) {
			return num;
		} else {
			count = 99;
			for (int i = 100; i <= num; i++) {

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

				if ((b - a) == (c - b)) {
					count++;
				}

			}
		}
		return count;
	}
}

먼저 문제를 봤을 때 각 자리의 수가 등차수열을 이룬다고 했기 때문에 각 자리의 수를 뺐을 때 나오는 수가 같아야 한다는 것까지는 생각을 했다.
예를 들어, 123이라는 수는 2-1=1, 3-2=1이기때문에 등차수열을 이룬다.

그리고 count를 통해 수를 세기로 했다.

그런데 100 미만의 수는 그 값 자체로 등차수열을 이루고 있다는 생각을 하지 못해서 계속 틀렸다ㅠㅠ

https://st-lab.tistory.com/53

이 링크 속 코드를 참고하여 해결하게 되었다.

0개의 댓글