[Java] 백준 #1065 (함수)

정상준·2022년 10월 15일
0

백준

목록 보기
41/99
post-thumbnail

📍 출처

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

📝 문제

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

⌨️ 입력

첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.

🖨 출력

첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.

⌨️ 예제 입력 1

110

🖨 예제 출력 1

99

⌨️ 예제 입력 2

1

🖨 예제 출력 2

1

⌨️ 예제 입력 3

210

🖨 예제 출력 3

105

📚 내가 제출한 코드

import java.util.Scanner;
 
public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		System.out.print(arithmetic_sequence(in.nextInt()));
		in.close();
	}
 
	public static int arithmetic_sequence(int num) {
		int cnt = 0; // 한수 카운팅
 
		if (num < 100) {
			return num;
		}
 
		else {
			cnt = 99;
 
			for (int i = 100; i <= num; i++) {
				int hun = i / 100; // 백의 자릿수
				int ten = (i / 10) % 10; // 십의 자릿수
				int one = i % 10;
 
				if ((hun - ten) == (ten - one)) { // 각 자릿수가 수열을 이루면
					cnt++;
				}
			}
		}
		return cnt;
	}
}

✏️ 내가 제출한 코드에 대한 설명

  • 1~99는 한수
  • 100~999까지만 구하면 됨
  • 100 이상이라면 각 자리수를 구해 등차수열을 이루는지 확인
profile
안드로이드개발자

0개의 댓글