알고리즘

[백준/Java]Q1065

  • -
반응형

백준 알고리즘 6단계 함수 1065번 문제입니다.


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

[입력]
- 1000보다 작거나 같은 자연수 N이 주어진다.

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

 

풀이

이 문제를 풀기 위해선 등차수열의 이해가 필요했다.

등차수열은 두 수의 차이가 일정한 수열을 말하는데 간단히 아래와 같은 수열로 이해할 수 있다.

  • 12345 : +1씩 증가
  • 13579 : +2씩 증가

이제 반복문을 통해 각 자릿수를 비교한다면 어렵지 않게 풀 수 있다.

 

소스
package com.baek.algo;

import java.util.Scanner;

public class Q1065 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int n = sc.nextInt();
		int x = 1;
		int hansu = 0;

		while(true) {
			if(x < 100) {
				hansu = x;
			} else if(x >= 100 & x <= 1000) {
				int a = x / 100;
				int b = x / 10 % 10;
				int c = x % 10;

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

			if(x == n || n > 1000) {
				break;
			}

			x = x + 1;
		}

		System.out.println(hansu);

		sc.close();
	}
}
반응형

'알고리즘' 카테고리의 다른 글

[백준/Java]Q1316  (0) 2021.07.08
[백준/Java]Q1712  (0) 2021.07.08
[백준/Java]Q4344  (0) 2021.07.08
[백준/Java]Q1110  (0) 2021.07.06
[백준/Java]Q10871  (0) 2021.07.06
Contents

포스팅 주소를 복사했습니다.

이 글이 도움이 되었다면 공감 부탁드립니다.